docker安装

这是我在Centos8上安装的Docker,其余版本现在还没有安装过,可能安装过程会有一些出入。
Docker版本要求 CentOs 系统的内核版本高于 3.10,可通过如下指令查看版本
uname -r
卸载docker,并更新yum,若未安装过,可省略此步骤
yum remove docker docker-common container-selinux docker-selinux docker-engine
yum remove -y docker-*

yum update
yum install -y yum-utils && yum-config-manager —add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
如果在安装过程中出现如下错误:
yum makecache: error: argument timer: invalid choice: ‘fast’ (choose from ‘timer’)
image.png
这说明centos8没有该参数,解决办法为:去掉fast参数,就可以了
Docker&Docker Compose部署 - 图2

查看仓库版本号,并指定版本安装
yum list docker-ce —showduplicates | sort -r
image.png
yum install docker-ce-3:18.09.9-3.el7.x86_64
or
yum install -y docker-ce

如果在安装时出现如下错误:
Problem: package docker-ce-3:18.09.9-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
image.png
根据报错所提示,需要containerd.io的版本 >= 1.2.2-3。
升级containerd.io(安装rpm包)
yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
4)重新安装docker-ce
yum install docker-ce-3:18.09.9-3.el7.x86_64
or
yum install -y docker-ce
image.png

docker启动

1)设置开机自启动
systemctl start docker
systemctl enable docker
2)启动
systemctl start docker
3)验证
docker ps
如果出现以下报错信息:
[root@localhost ~]# docker ps
Error response from daemon: client version 1.40 is too new. Maximum supported API version is 1.39
此时,重新卸载吧,接着重新安装。安装docker-ce修改如下:
yum -y install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm
yum install -y docker-ce-3:18.09.9-3.el7.x86_64 docker-ce-cli-1:18.09.9-3.el7.x86_64
如果出现下述的内容 就代表这docker已经安装好了
image.png

Docker Compose安装

Docker Compose 存放在Git Hub,不太稳定。
你可以也通过执行下面的命令,高速安装Docker Compose。
https://get.daocloud.io/#install-compose

  1. curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

你可以通过修改URL中的版本,可以自定义您的需要的版本。

Docker 卸载

  1. sudo yum remove docker docker-common container-selinux docker-selinux docker-engine

卸载Docker后,/var/lib/docker/目录下会保留原Docker的镜像,网络,存储卷等文件. 如果需要全新安装Docker,需要删除/var/lib/docker/目录

  1. rm -fr /var/lib/docker/

Docker加速器

1、curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
2、修改/etc/docker/daemon.json,配置仓库地址

  1. {
  2. "registry-mirrors": ["https://wvd224tw.mirror.aliyuncs.com"]
  3. }

systemctl daemon-reload
systemctl restart docker

开启docker远程API的端口

第一步:配置Docker,开启远程访问,默认端口是2375,也可以修改为其他端口
修改/lib/systemd/system/docker.service文件
vim /lib/systemd/system/docker.service
在ExecStart后面追加 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock(建议后半部分直接复制,如果写错了会重启失败)
image.pngimage.png
#重新加载配置文件
systemctl daemon-reload
#重启docker服务
systemctl restart docker
使用curl命令检查是否开启
curl http://127.0.0.1:2375/info

问题处理

无法创建网络

  • 现象 ```shell [root@localhost ~]# docker-compose -f /data/docker/docker-compose-base.yml up -d Creating network “docker_consul” with the default driver ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables —wait -t nat -I DOCKER -i br-bc755067fe06 -j RETURN: iptables: No chain/target/match by that name. (exit status 1))
  1. - 方法
  2. ```shell
  3. 1, Remove all containers, so docker ps --all shows nothing. ##删除所有的容器 docker rm 容器ID
  4. 2, systemctl stop docker ##停止docker
  5. 3, rm /var/lib/docker/network/files/local-kv.db
  6. 4, systemctl start docker

关闭SELinux

[root@dev-server ~]# getenforce
Disabled
[root@dev-server ~]# /usr/sbin/sestatus -v
SELinux status: disabled
临时关闭,执行:setenforce 0
永久关闭:
使用sed:sed -i ‘s#SELINUX=enforcing#SELINUX=disabled#g’ /etc/selinux/config
或者修改文件:vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled
设置后需要重启才能生效