1. Docker的三个主元素
1.1 仓库
仓库是用来存放各种镜像资源的,比如tomcat、MySQL,这些镜像资源在Docker仓库中是存在的,可以通过docker pull
命令,将仓库内的镜像拉取到本地直接运行。当然在实际操作中,使用CentOS镜像情况更多,然后将自己的应用和CentOS镜像进行结合,形成1.2中的镜像文件。这里的仓库是远程的,类似于Java中使用的Maven仓库,通过Maven坐标到中央仓库中拉取依赖。
1.2 镜像
本地镜像库,将远程的镜像拉取到本地,存储在本地,形成本地镜像库。但是不仅限于远程仓库镜像,正常使用情况都是远程仓库拉取的镜像和业务相结合,形成镜像文件并缓存到本地镜像库。比如Java的SpringBoot项目,通多Dockerfile的打包,形成一个可运行的CentOS镜像,直接启动镜像形成1.3的容器,就可以实现项目的部署运行。
1.3 容器
通过本地镜像库运行创建的容器。这个容器可以理解为一栋大楼里面的一个个房间,每个房间代表一个容器,容器中可以运行各种需要运行的应用,每个房间之间又是相互隔离的。
2. Docker加速镜像
Docker自有的镜像源是部署在国外服务器上的,在拉取镜像的时候会比较慢,在国内有很多厂商构建了Docker加速镜像,通过CDN映射到远程Docker镜像仓库,可以大大的提升远程仓库拉取镜像的速度。这些厂商有阿里云、网易、科大镜像等等,在这里记录一下阿里云镜像的配置方式。
- 进入阿里云容器镜像服务,地址是:阿里云容器镜像服务,登录你的阿里云账号;
- 进入后从侧边栏中找到镜像加速器,按照操作文档的指示,找到对应系统类型;
- 以CentOS为例,按照配置镜像的脚本依次执行即可。
# 配置镜像加速器的脚本示例
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://example.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
注意:脚本只是示例,不是可使用的,主要是中间registry-mirrors
地址是需要根据实际阿里云提供的来。
3. Docker的数据卷
Docker的数据卷可以简单的理解为是宿主机和Docker容器的共享目录。比如容器启动后不想在容器里面去操作,想简便的在宿主机上操作,这个时候就可以使用到共享目录。比如前端打包后的页面。