容器运行需要管理工具、运行时和操作系统:
管理工具 - Docker Engine
运行时 - containerd → runc
操作系统 - CentOS / Ubuntu
下面我们将按照文档,通过以下步骤在 CentOS 7.9 上安装 Docker CE 版本。为了提升安装速度,更换了安装源到阿里云官方仓库。
CentOS 系统安装 Docker 见官方文档:https://docs.docker.com/engine/install/centos/
$ yum install -y yum-utils$ yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo$ 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 的日志格式为 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$ systemctl enable docker && systemctl start docker下面我们将按照文档,通过以下步骤在 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$ sudo apt-get update
$ sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release添加 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$ 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 组
$ 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 的服务器在国外,下载镜像会比较慢。我们可以去阿里巴巴申请一个国内镜像加速地址。
配置镜像加速器并重启 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