1.安装Docker
首先,添加Docker CE镜像源:
1 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
然后,安装Docker CE、Docker CLI和Containerd:
1 2 3 4 5 6 7 8 yum install docker-ce docker-ce-cli containerd.io //启动docker systemctl enable docker systemctl start docker //查看docker版本 docker --version //查看是否启动成功 rpm -qa | grep docker
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 { "registry-mirrors" : [ "https://4sjn347i.mirror.aliyuncs.com" , "https://docker.mirrors.ustc.edu.cn" ], "max-concurrent-downloads" : 10, "insecure-registries" : [], "debug" : true , "experimental" : false , "features" : { "buildkit" : true } }
2.安装Docker Compose
下载Docker Compose可执行文件:
1 curl -SL https://github.com/docker/compose/releases/download/v2.18.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
创建软链接到/usr/bin目录:
1 sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
授予执行权限:
1 sudo chmod +x /usr/local/bin/docker-compose
验证安装是否成功:
1 docker-compose --version
3.完整安装过程
以下是完整的安装过程:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 [root@node71 ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo Loaded plugins: fastestmirror, langpacks adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo repo saved to /etc/yum.repos.d/docker-ce.repo [root@node71 ~]# yum install docker-ce docker-ce-cli containerd.io Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * epel: mirrors.bfsu.edu.cn * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com docker-ce-stable | 3.5 kB 00:00:00 Package 3:docker-ce-24.0.2-1.el7.x86_64 already installed and latest version Package 1:docker-ce-cli-24.0.2-1.el7.x86_64 already installed and latest version Package containerd.io-1.6.21-3.1.el7.x86_64 already installed and latest version Nothing to do [root@node71 ~]# systemctl start docker [root@node71 ~]# systemctl enabled docker Unknown operation 'enabled' . [root@node71 ~]# systemctl enable docker Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. [root@node71 ~]# curl -SL https://github.com/docker/compose/releases/download/v2.18.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 52.0M 100 52.0M 0 0 1012k 0 0:00:52 0:00:52 --:--:-- 2080k [root@node71 ~]# sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose [root@node71 ~]# docker-compose --version -bash: /usr/local/bin/docker-compose: Permission denied [root@node71 ~]# sudo chmod +x /usr/local/bin/docker-compose [root@node71 ~]# docker-compose --version Docker Compose version v2.18.1
4.docker维护
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 #查看运行中的容器 [root@ansible prometheus]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1e67cc0cd48a prom/prometheus "/bin/prometheus --c…" 3 minutes ago Created crazy_varahamihira 121e8c4fae84 prom/prometheus "/bin/prometheus --c…" 19 minutes ago Up 19 minutes 127.0.0.1:9090->9090/tcp prometheus #停止运行中的容器 [root@ansible prometheus]# docker stop prometheus prometheus docker info # 查看docker的信息 docker search img_name # 搜索名为img_name的镜像 docker pull img_name # 将名为img_name的镜像下载到本地 docker images # 查看本地已有的镜像 docker rmi img_name # 删除名为img_name的镜像 docker ps # 列出正在运行的容器 docker ps -a # 列出所有的容器 # 使用img_name以交互模式在后台运行分配了伪终端的名为container_name的镜像 docker run -itd --name=container_name img_name docker start container_name/container_id # 通过容器名字或ID启动容器 docker stop container_name/container_id # 通过容器名字或ID停止容器 docker restart container_name/container_id # 通过容器名字或ID重启容器 docker rm container_name/container_id # 通过容器名字或ID删除容器 docker exec -it id /bin/bash # 通过容器名字或ID进入容器 exit # 退出容器 #docker进入容器命令 docker exec -it 44fc0f0582d9 /bin/bash
5.查看报错
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #查看log docker logs 34d9cdf91e46 1. # 通过查看容器日志,确定是什么问题,docker logs -f -t --tail 行数 容器名 docker logs -f -t --tail 100 <containerID> 2. # 将容器中导致错误的文件拷贝到宿主机上 docker cp containerID:container_path host_path ***说明*** containerID:容器ID container_path:容器内文件路径(需拷贝的源文件) host_path:宿主机路径(拷贝文件的目标) 3. # 修改拷贝出来的配置文件, 再将配置文件拷贝回去容器 docker cp host_path containerID:container_path 4. # 再次启动容器 docker start containerID
6.参考资料