docker 两种创建镜像的方式

一、docker commit

主要步骤是用镜像实例化docker,然后修改,然后提交制作新镜像

在环境中查看当前镜像

docker构建镜像--docker commit 和 DockerFile

用centos镜像起一个容器,写入一个测试文件home/image_commit_test

也可以安装一个程序,有变化就行

docker构建镜像--docker commit 和 DockerFile

 

因为容器是临时启动,退出就会销毁,新开窗口查看正在运行的容器

kickass_hugle   emmmm, docker瞎起的名字

docker构建镜像--docker commit 和 DockerFile

 

Docker commit 把当前运行的容器制作为centos_image_commit_test 镜像

docker构建镜像--docker commit 和 DockerFile

 

进入镜像查看,文件已经存在

docker构建镜像--docker commit 和 DockerFile但是 docker 不建议这么构建镜像,(原因不管了,一点都不自动化)

 

二、docker file

先看当前路径,并且写一个 DockerFile

docker构建镜像--docker commit 和 DockerFile

Docker build 创建镜像

docker构建镜像--docker commit 和 DockerFile

[[email protected] DockerFile]# docker build -t centos_image_dockerfile_test .

# -t 将新镜像命名为 ubuntu-with-vi-dockerfile

#  . 指明 build context 为当前目录

# 也可以通过 -f 参数指定 Dockerfile 的位置

Sending build context to Docker daemon 2.048 kB

#  Docker 将 build context 中的所有文件发送给 Docker daemon

Step 1/2 : FROM centos

 ---> 470671670cac

# centos镜像的id

Step 2/2 : RUN echo "docker file test" >> home/docker_file_test

# 在470671670cac 基础上执行命令

 ---> Running in e63b8ecdeee0

# 启动 ID 为 e63b8ecdeee0的临时容器,在容器中重定向文件

 ---> 98e47ac9f82c

# 得到 98e47ac9f82c 的镜像,docker images 可以看到就是centos_image_dockerfile_test 的id

Removing intermediate container e63b8ecdeee0

# 删除临时容器

Successfully built 98e47ac9f82c

# 创建成功

查看镜像centos_image_dockerfile_test 已存在, 进入容器 home/docker_file_test 也在

docker构建镜像--docker commit 和 DockerFile

 

docker构建镜像--docker commit 和 DockerFile


 

Docker history 可以看到镜像的来龙去脉也就是 Dockerfile 的执行过程。

<missing>表示无法获取 IMAGE ID,可能网络原因,从国内镜像源应该不会这样

docker构建镜像--docker commit 和 DockerFile

 

和原来的centos镜像相比,只是多了一个文件而已

相关文章:

  • 2022-12-23
  • 2021-10-30
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-17
  • 2021-05-19
猜你喜欢
  • 2021-10-16
  • 2022-12-23
  • 2022-01-13
  • 2022-12-23
  • 2022-12-23
  • 2021-05-11
  • 2021-05-19
相关资源
相似解决方案