首先来说一下 docker 版本的选择问题,可以看一下下面这段引言,就能知道一个大概的选择了。

docker-io, docker-engin 是以前早期的版本,版本号是 1.*,默认centos7 安装的是docker-io,最新版是 1.13;Ubuntu默认安装的是docker-ce ,docker-ce 是社区版本,适用于刚刚开始docker 和开发基于docker研发的应用开发者或者小型团队,所以这里统一为安装docker-ce

我的环境

  • CentOS-7-x86_64-Minimal-1810
  • Linux 3.10.0-957.el7.x86_64

CentOS 更新

sudo yum update

卸载 docker

可能系统已经默认安装docker,但我的Centos系统是最小化安装,所以默认没有安装docker,但是最好还是卸载一下

  1. 检查系统中是否已经安装了docker
ps -ef | grep docker
  1. 列出已经安装的 docker 相关软件
yum list installed | grep docker
  1. 删掉已经安装的 docker 相关软件
    把列出的都删掉,根据名字删除,如:docker-ce.x86_64
sudo yum -y remove docker-ce.x86_64
  1. 删除残留目录的镜像文件,容器等
sudo rm -rf /var/lib/docker
  1. 删除残留目录的配置文件等
sudo rm -rf /etc/docker
  1. 删除自系统启动以来描斜体样式述系统信息的文件
sudo rm -rf /var/run/docker

安装 docker

  • 安装 yum-utils,它提供了 yum-config-manager,可用来管理yum源
sudo yum install -y yum-utils
  • 添加yum源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 更新yum索引
sudo yum makecache fast
  • 安装 docker-ce
  • 安装最新版
sudo yum install -y docker-ce
  • 安装指定版本
  1. 查询适合目前系统内核的 docker 版本
yum list docker-ce --showduplicates|sort –r
  1. 安装指定版本的docker-ce
sudo yum install docker-ce-18.03.1.ce-1.el7.centos -y
  • 设置为系统服务
sudo systemctl enable docker
  • 启动docker
sudo systemctl start docker
或者
sudo service docker restart
  • 安装完成之后可以查看一下 docker 的版本信息:
[root@localhost /]# docker -v
Docker version 19.03.5, build 633a0ea
  • 查看 docker 的信息
docker info
  • 若出现错误信息:
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

解决

vi /etc/sysctl.conf

在文件里添加下面两行代码:

net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

然后:wq 保存后推出,执行下面代码:

sysctl -p

再次执行docker info,若出现错误

WARNING: IPv4 forwarding is disabled

解决办法

vi /etc/sysctl.conf

修改,将默认值 0 修改为 1
    net.ipv4.ip_forward=1

重启network服务
systemctl restart network

设置镜像仓库源

默认的镜像仓库是Docker Hub,拉取镜像的速度很慢,所以为了方便镜像获取,可以更改镜像源,方法是添加一个配置文件

一步到位,直接更换地址即可,推荐 阿里云

echo '{
 "registry-mirrors": ["https://registry.docker-cn.com"]
}' > /etc/docker/daemon.json

阿里云
echo '{
 "registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]
}' > /etc/docker/daemon.json

分步操作

sudo vi /etc/docker/daemon.json

{
 "registry-mirrors": ["https://registry.docker-cn.com"]
}

添加完命令之后,需要重启一下容器服务

容器重启

systemctl 方式

守护进程重启
sudo systemctl daemon-reload

重启docker服务
sudo systemctl restart docker

现在执行一下docker info 命令,可以查看到 docker 的镜像源已经更改为国内的了,信息如下:

Registry Mirrors:
 https://registry.docker-cn.com/

docker 已经按照好了,现在,可以试一下拉取一个镜像了

docker pull nginx

安装 docker-compose

下载安装

方式一:官网安装

curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

方式二:国内安装

Docker Compose 存放在Git Hub,不太稳定。你可以也通过执行下面的命令,高速安装Docker Compose。

curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

通过修改URL中的版本,可以自定义需要的版本。可在官网查询到最新的版本在来更新上述路径中的版本号,如1.25.01.29.2

增加权限

sudo chmod +x /usr/local/bin/docker-compose

查看版本docker-compose -v

docker-compose --version

[root@localhost /]# docker-compose --version
docker-compose version 1.25.0, build 0a186604