CentOS 下安装 Docker 和 Docker Compose
准备工作
1、检测内核版本:
Docker 要求 CentOS 系统的内核版本高于 3.10(CentOS 7 内核应该就是 3.10)
# 检查内核版本 uname -r
2、更新到最新 yum 包:
yum update -y
3、安装需要的软件包:
# yum-util 提供 yum-config-manager 功能, 另外两个是 devicemapper 驱动依赖 yum install -y yum-utils device-mapper-persistent-data lvm2
4、设置 yum 源:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装 Docker
1、安装最新稳定版的 docker:
sudo yum install docker-ce docker-ce-cli containerd.io
如果上述命令运行出错,可能是系统(如 CentOS 8)上安装有旧版本的 Docker,需要先卸载旧版本:
yum remove docker docker-common docker-selinux docker-engine docer-io
2、启动并加入开机启动:
systemctl start docker systemctl enable docker
3、验证安装是否成功:
# 有 client 和 service 两部分表示 docker 安装并启动成功了 docker version
安装 Docker-Compose
Docker-Compose 是干什么的?Docker-Compose 是一个用来整合多个 Docker 服务的工具。它利用 docker-compose.yml 文件代替复杂的 docker run 命令,并可同时运行多个 Docker 容器。docker-compose 入门指南。
Docker Compose 的安装比较简单,将文件下载下来即可。访问 https://github.com/docker/compose/releases/latest 记录下最新的 docker-compose 版本号(例如:1.27.4),然后执行命令下载 docker-compose。
1、下载最新版本的 docker-compose 到 /usr/local/bin 目录下:
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2、授予 docker-compose 文件可执行权限:
chmod +x /usr/local/bin/docker-compose
3、测试安装是否成功(可能需要先重启操作系统):
# 安装成功会显示 docker-compose 版本 docker-compose -v
为 Docker 设置代理
配置代理
由于国内特殊的网络环境,通过代理的话,可能能加快镜像的拉取速度。但即使为 CentOS 配置了代理,也不会对 Docker 起作用,因为 Docker 属于应用层,需要单独为其配置代理。
1、创建 docker 配置文件夹
mkdir /etc/systemd/system/docker.service.d
2、创建并编辑 http-proxy.conf 文件
vim /etc/systemd/system/docker.service.d/http-proxy.conf
写入如下内容:
[Service] Environment="HTTP_PROXY=http://192.168.0.11:2080" "NO_PROXY=localhost,127.0.0.1"
3、创建并编辑 https-proxy.conf 文件
vim /etc/systemd/system/docker.service.d/https-proxy.conf
写入如下内容:
Environment="HTTPS_PROXY=http://192.168.0.11:2080" "NO_PROXY=localhost,127.0.0.1"
以上的 IP 地址和端口根据实际修改(以自己电脑上运行的某软件作为代理为例,可能需要将监听地址由 127.0.0.1 改为 0.0.0.0,表示监听所有的代理请求,否则只能本机)
4、运行以下命令使生效
systemctl daemon-reload #重新加载 systemd 守护进程的配置 systemctl restart docker #重启 Docker
删除代理
1、删除 /etc/systemd/system/docker.service.d 文件夹:
rm -rf /etc/systemd/system/docker.service.d
2、并运行以下命令使生效:
systemctl daemon-reload #重新加载 systemd 守护进程的配置 systemctl restart docker #重启 Docker
Docker 容器和镜像的查看和删除
查看容器:
docker ps #查看运行中的容器 docker ps -a #查看所有容器
删除某个容器:
docker rm <container id>
查看镜像:
docker images #查看镜像
删除某个镜像:
docker rmi <image id>
故障处理
创建容器时报错类似如下内容:
docker: Error response from daemon: driver failed programming external connectivity on endpoint xxxx ...... (iptables failed: iptables ......
解决:重启 Docker systemctl restart docker