文章目录
- 目的
- 一、构建构建镜像
- 1.1 准备一个基础镜像,一般我们选用centos7作为基础镜像
- 1.2 为了方便,我们直接把基础镜像运行起来,然后在该镜像中安装软件
- 1.3 其他操作
- 1、如何退出容器
- 2、如何拷贝东西到镜像中
- 3、如何再次进入到容器中
- 4、进入容器后,所有操作与linux无差别,可以在里面安装自己想要的
- 二、生产出需要的镜像
目的
构建java,环境就需要安装maven、git等组件,由于环境一旦迁移,会导致新环境又需要重新安装一遍组件。为了解决该问题,我们可以把java、maven、git等组件,安装在一个容器中,并且在该容器里面进行构建。
一、构建构建镜像
1.1 准备一个基础镜像,一般我们选用centos7作为基础镜像
dockerhub镜像: centos:centos7
1.2 为了方便,我们直接把基础镜像运行起来,然后在该镜像中安装软件
docker run -it centos:centos7
注意:执行以上的命令,会直接进入到容器中
ps: -it: 以交互模式运行容器、为容器重新分配一个伪输入终端
如果服务器可以联网,执行以下方式安装软件
在该环境,我们安装git、jdk、mavne,为了快速演示,我均采用yum安装
yum install java-1.8.0-openjdk* -y
yum -y install apache-maven
1.3 其他操作
1、如何退出容器
ctrl按住不放,再按 p + q 即可退出容器
或者
输入 exit
2、如何拷贝东西到镜像中
docker ps
获取 CONTAINER ID
例如:
43ac2a3f49dd
docker cp 【当前文件夹】 【CONTAINER ID】:【容器目录】
例如:
docker cp ./data 43ac2a3f49dd:/opt
3、如何再次进入到容器中
docker exec -it 43ac2a3f49dd /bin/bash
4、进入容器后,所有操作与linux无差别,可以在里面安装自己想要的
二、生产出需要的镜像
重要:把多余的文件删除掉(比如构建的代码等)!!!
停止运行镜像
docker stop 43ac2a3f49dd
命名格式为:
docker commit 【CONTAINER ID】 【容器名称】
例如:
docker commit 43ac2a3f49dd 172.25.10.70:1000/library/java8-mvn-centos7:v1.0.0
将镜像推送到镜像仓库中,作为基础镜像使用。
ps:直接使用commit这种方式创建的镜像,默认启动命令会继承最开始的镜像,比如我们目前的镜像启动命令为:CMD [“/bin/bash”]
如上所述:
172.25.10.70:1000/library/java8-mvn-centos7:v1.0.0 为最终生产出来的镜像