docker学习整理六 创建镜像

Posted 不要做程序员的小松鼠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker学习整理六 创建镜像相关的知识,希望对你有一定的参考价值。

docker学习整理六 创建镜像

docker commit

  • 其实镜像的一些操作类似git。
  • 我们之前的centos容器中,安装了mysql的客户端,那么我们把这个容器打成镜像,之后通过这个镜像拉起的容器就默认包含mysql客户端了。
  • docker commit -a="xiaosongshu" -m="Just for fun" 41ab49865c6a myrepo/centmysql:1.0
  • -a 参数指的是作者
  • -m msg
  • myrepo 是我们自定义的仓库名
  • centmysql:1.0自定义的镜像名+tag
  • 此时我们docker images就可以看到我们自己创建的镜像了。
  • 可以通过docker run测试是否包含mysql客户端。

dockerfile

  • 创建一个文件,文件中的指令大概类似一个脚本,依据此脚本构建镜像。
  • 参数说明
    • FROM 基于某个镜像创建
    • CMD 容器构建后,在容器内内执行的指令
    • WORKDIR CMD执行的目录
    • ENV 设置环境变量
    • EXPOSE 指定端口
    • MAINTAINER 声明作者
    • RUN 构建容器时执行的命令
    • 别的参数,参考官方文档即可。
  • 还是创建上面的镜像,一个安装了mysql客户端的centos镜像。
  • 创建dockerfile:vi mydockerfile
    内容:
    # 这一行是注释,咱们少写点
    FROM centos
    RUN yum install -y  mysql
    
    执行docker build
    docker build -f mydockerfile -t mycentmysql:1.1 .
    
    然后你就会看到屏幕嘟嘟嘟的安装mysql,最后显示Successfully。
  • 这时就可以愉快的拉起来这个镜像的容器,看看到底装没装mysql客户端了。

至于仓库

  • 创建完镜像,理论上应该和git一样,push到仓库,然后使用时候pull。最近docker hub有点风波,也可以自己建一个,后续再议。

以上是关于docker学习整理六 创建镜像的主要内容,如果未能解决你的问题,请参考以下文章

docker学习整理四 拉起mysql容器学习简单使用

docker学习整理五 容器间通信

Docker容器学习整理

Docker学习记录 - 构建镜像

docker学习总结六

docker学习整理二 简单使用