我们可以通过公共仓库拉取镜像使用,但是,有些时候公共仓库拉取的镜像并不符合我们的需求。尽管已经从繁琐的部署工作中解放出来,但是实际开发时,我们可能希望镜像包含整个项目的完整环境,在其他机器上拉取打包完整的镜像,直接运行即可。
Docker 支持自己构建镜像,还支持将自己构建的镜像上传至公共仓库,镜像构建可以通过以下两种方式来实现:
- docker commit:从容器创建一个新的镜像;
- docker build:配合 Dockerfile 文件创建镜像。
下面我们先通过 docker commit 来实现镜像的构建。
目标:我们通过基础镜像 centos:7,在该镜像中安装 jdk 和 tomcat 以后将其制作为一个新的镜像 mycentos:7。
创建容器
# 拉取镜像 docker pull centos:7 # 创建容器 docker run -di --name centos7 centos:7
拷贝资源
# 将宿主机的 jdk 和 tomcat 拷贝至容器 docker cp jdk-11.0.6_linux-x64_bin.tar.gz centos7:/root docker cp apache-tomcat-9.0.37.tar.gz centos7:/root