DevOps运维Centos7.6上部署Docker环境
在Centos7.6上部署Docker环境
#升级yum
sudo yum update
#卸载旧版本docker
sudo yum remove docker docker-common docker-selinux docker-engine
#安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#设置源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
#安装docker
sudo yum install docker-ce
#启动服务
sudo systemctl start docker
#查看版本
docker version
#拉取镜像
docker pull hello-world
#启动容器
docker run hello-world
安装docker-compose并授权
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose -v
重新创建容器并运行
docker-compose up --force-recreate (up 相当于 build + start)
Docker 容器 镜像 删除
-
查看已运行容器
docker ps
-
查看所有容器
docker ps -a
-
查看images
docker images
-
删除images
docker rmi IMAGE ID
docker rmi REPOSITORY:TAG
-
删除
镜像
docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }') #停止容器
docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }') #删除容器
docker rmi $(docker images | grep "^<none>" | awk '{print $3}') #删除镜像
-
停止所有的container,这样才能够删除其中的images:
docker stop $(docker ps -a -q)
-
如果想要删除所有container的话再加一个指令:
docker rm $(docker ps -a -q)
-
要删除全部image的话
docker rmi $(docker images -q)
理解要点
expose 与 ports 比较
- ports: 绑定容器的端口到主机的端口,这样就可以在外网访问docker容器的服务
- expose: 将当前容器的端口3暴露给link到本容器的容器,expose不会将端口暴露给主机
depends_on 与 links区别
- depends_on: 指定本容器启动依赖的容器必须先启动
- links: 保证容器如果ip变化也能访问(基本已经弃用,因为不使用link仍然可以通过容器名称访问)
报错处理
(docker)RUN apt update、(linux)apt和apt-get命令
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
sudo apt install -y blender > /dev/null 2> /dev/null