关于docker:Docker实践及命令梳理

7次阅读

共计 1637 个字符,预计需要花费 5 分钟才能阅读完成。

  1. docker 装置
  • 筹备工作 卸载旧版本的 docker
$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine
  • 零碎要求

    Docker 反对 64 位版本 CentOS 7/8,并且要求内核版本不低于 3.10。CentOS 7 满足最低内核的要求,但因为内核版本比拟低,局部性能(如 overlay2 存储层驱动)无奈应用,并且局部性能可能不太稳固。

  • 应用 yum 装置

    sudo yum install -y yum-utils
    鉴于国内网络问题,强烈建议应用国内源,官网源请在正文中查看。

    执行上面的命令增加 yum 软件源:

    $ sudo yum-config-manager \
      --add-repo \
      https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    $ sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
    
    # 官网源
    # $ sudo yum-config-manager \
    #     --add-repo \
    #     https://download.docker.com/linux/centos/docker-ce.repo
    

如果须要测试版本的 Docker 请执行以下命令:

 如果须要测试版本的 Docker 请执行以下命令:

更新 yum 软件源缓存,并装置 docker-ce。

$ sudo yum install docker-ce docker-ce-cli containerd.io
  1. 应用脚本主动装置 docker
# $ curl -fsSL test.docker.com -o get-docker.sh
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud
  1. 创立 docker 组

  默认状况下,docker 命令会应用 Unix socket (opens new window) 与 Docker 引擎通信。而只有 root 用户和 docker 组的用户才能够拜访 Docker 引擎的 Unix socket。出于平安思考,个别 Linux 零碎上不会间接应用 root 用户。因而,更好地做法是将须要应用 docker 的用户退出 docker 用户组。

sudo groupadd docker
sudo usermod -aG docker $USER
# 退出以后终端并从新登录,进行如下测试
docker run --rm hello-world
  1. 镜像减速

阿里云镜像减速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["这里替换成本人的阿里云镜像加速器地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

如果在 CentOS 应用 Docker 看到上面的这些正告信息:

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
请执行下列操作

sudo tee -a /etc/sysctl.conf <<-EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sudo sysctl -p
正文完
 0