Docker 学习篇(二)
1、Linux 环境安装 Docker
官网地址:https://docs.docker.com/engine/install/centos/
需要注意 Docker 与 Linux 版本匹配的问题,Docker 只能运行在版本在6.5及以上的 CentOS 上,并且要求系统为64位,系统内核为2.6.32-432或者更高的版本。
查看CentOS版本信息:cat /etc/redhat-release
查看内核信息:uname -r
第一步:卸载之前安装的 Docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
第二步:下载依赖包
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
第三步:添加yum软件源,这个yum软件源,就是告诉操作系统,去哪里获取 Docker (Docker所在的远程仓库)
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
第四步:安装 Docker
sudo yum install docker-ce docker-ce-cli containerd.io
第五步:启动 Docker
sudo systemctl start docker
第六步:验证 Docker 是否安装成功,如图1,出现 Docker 的版本号,即表示安装成功。
docker -v
第七步:配置 Docker 阿里云镜像加速
使用 Docker 下载镜像的时候,默认是从 https://hub.docker.com/ 下载,这个是外国网站,下载速度很慢,所以我们要换掉它,使用阿里云镜像加速器,这样的话,下载速度就大大提高了。
(1)首先,进入阿里云官方网站,获取镜像加速器(镜像仓库地址),这个镜像仓库地址每个人都不一样,阿里云会为每个人分配一个独一无二的镜像仓库地址。
登录阿里云官网-》控制台-》产品与服务-》容器镜像服务-》镜像工具-》镜像加速器-》操作文档,选择CentOs,此时获取到的镜像仓库地址就是图2中的 "registry-mirrors": ["https://ht620fbp.mirror.aliyuncs.com"]。
(2)依次执行图2中的命令。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://ht620fbp.mirror.aliyuncs.com"]
}
EOF
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://ht620fbp.mirror.aliyuncs.com"]
}
EOF
// 重启docker的后台线程
sudo systemctl daemon-reload
// 重启docker服务
sudo systemctl restart docker
(3)Linux 系统下配置完加速器,检查加速器是否生效,见图3。
ps -ef|grep docker
2、使用 Docker 运行 hello-world 程序
实际上 hello-world 这个程序已经被打成一个镜像,扔在镜像仓库中。我们只需要执行执行docker run hello-world这个命令,就会从镜像仓库拉取 hello-world 镜像,并根据这个镜像生成 hello-world 容器,最后 Docker 运行 hello-world 容器,打印程序结果。
docker run hello-world 这条命令的执行过程如下所示:
(1)从本地找hello-world镜像,如果本地没有(见图 4 第 1 行),就从仓库hub(我们配置的阿里云)拉取(pull)hello-world镜像(见图 4 第 2、3、4、5 行)。
(2)以hello-world镜像为模板生成一个hello-word容器,在docker上运行,运行结果如第1行。第2行说明我们的 docker 运行环境安装好了。
我们可以尝试执行一个镜像仓库中不存在的镜像,看看会有什么反应,见图6,输出 Unable to find image locally 和 repository does not exist ,说明在本地和配置的阿里云hub上都没有这个镜像。
// 以我的名字命名的镜像
docker run hello-world-zhouxuejiao