xiufeigo™
Home
运维
Docker 安装

环境选择

容器运行需要管理工具、运行时和操作系统:

  • 管理工具 - Docker Engine

  • 运行时 - containerd → runc

  • 操作系统 - CentOS / Ubuntu


安装 Docker

CentOS 安装

下面我们将按照文档,通过以下步骤在 CentOS 7.9 上安装 Docker CE 版本。为了提升安装速度,更换了安装源到阿里云官方仓库。

CentOS 系统安装 Docker 见官方文档:https://docs.docker.com/engine/install/centos/

💡

安装依赖包

$ yum install -y yum-utils

添加 Docker yum 仓库

$ yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装 Docker

$ yum install -y docker-ce docker-ce-cli containerd.io

如需安装特定版本,首先列出支持的版本

$ yum list docker-ce --showduplicates | sort -r

然后,指定版本号进行安装,版本号格式:docker-ce-18.09.1

$ yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

配置 Docker

如下配置 Docker:

  • 设置 Docker 的日志格式为 json,日志文件大小为 100M,最多保存 3 个日志;

  • 设置 Docker 镜像私有仓库和官方镜像加速地址;

  • 设置 Docker 的数据目录到 /data/docker;

  • 设置 Docker 的 Storage Driver 为 overlay2。

$ mkdir /etc/docker
$ cat << EOF > /etc/docker/daemon.json
{
  "log-driver": "json-file",
    "log-opts": {
      "max-size": "100m",
      "max-file": "3"
    },
  "registry-mirrors": ["https://xxx.mirror.aliyuncs.com"],
  "data-root": "/data/docker",
  "exec-opts": ["native.cgroupdriver=systemd"],
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOF

启动 Docker

$ systemctl enable docker && systemctl start docker

Ubuntu 系统安装

下面我们将按照文档,通过以下步骤在 Ubuntu 20.04 上安装 Docker CE 版本。

Ubuntu系统安装 Docker 见官方文档:https://docs.docker.com/engine/install/ubuntu/

💡

卸载老版本

$ sudo apt-get remove docker docker-engine docker.io containerd runc

安装依赖包,允许 apt 命令以 HTTPS 协议访问 Docker 源

$ sudo apt-get update
$ sudo apt-get install \
   ca-certificates \
   curl \
   gnupg \
   lsb-release

配置 Docker 的 apt 源

添加 Docker 官方的 GPG key

$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

将 Docker 的源添加到 /etc/apt/sources.list.d/docker.list

$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装 Docker

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

默认安装最新版本的 Docker,如需安装特定版本,首先可以列出有效版本,然后安装特定版本:

$ sudo apt-cache madison docker-ce

安装特定版本,<VERSION_STRING> 如:5:18.09.1~3-0~ubuntu-xenial

$ apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io


添加 docker 用户组

常规安装完 docker 后,如需使用 docker 相关命令,则需要当前用户在 docker 用户组里。可以使用下面命令将用户添加到 docker 用户组里

# 添加用户到 docker 组
$ sudo gpasswd -a $USER docker

# 更新用户组
$ newgrp docker

# 测试 docker 命令能否正常使用
docker version


运行第一个容器

环境就绪,马上运行第一个容器,执行命令:

$ sudo docker run -d -p 80:80 httpd

其过程可以简单的描述为:

  • 从 Docker Hub 下载 httpd 镜像。镜像中已经安装好了 Apache HTTP Server

  • 启动 httpd 容器,并将容器的 80 端口映射到宿主机的 80 端口

下面我们可以通过浏览器验证容器是否正常工作。在浏览器中输入 http://[your ubuntu host IP]

可以访问容器的 http 服务了,第一个容器运行成功!我们轻轻松松就拥有了一个 WEB 服务器。随着学习的深入,会看到容器技术带给我们更多的价值。


镜像下载加速

由于 Docker Hub 的服务器在国外,下载镜像会比较慢。我们可以去阿里巴巴申请一个国内镜像加速地址。

阿里云镜像加速器件链接:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

💡

配置镜像加速器并重启 docker 服务:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
        "https://xxx.mirror.aliyuncs.com",
        "https://mirror.ccs.tencentyun.com",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

第三方加速地址「来自:https://registry.devops-engineer.com.cn」

Docker
官方方法:docker pull nginx:alpine
加速方法:docker pull docker.cloudimages.asia/nginx:alpine
Kubernetes
官方方法:docker pull registry.k8s.io/coredns/coredns:v1.11.1
加速方法:docker pull k8s.cloudimages.asia/coredns/coredns:v1.11.1
Quay
官方方法:docker pull quay.io/username/image:tag
加速方法:docker pull quay.cloudimages.asia/username/image:tag
GHCR
官方方法:docker pull ghcr.io/username/image:tag
加速方法:docker pull ghcr.cloudimages.asia/username/image:tag
GCR
官方方法:docker pull gcr.io/username/image:tag
加速方法:docker pull gcr.cloudimages.asia/username/image:tag
BLOG
第一域名:https://blog.devops-engineer.com.cn
第二域名:https://www.devops-engineer.com.cn

粤ICP备2022009857号-1