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
内容:
执行docker build# 这一行是注释,咱们少写点 FROM centos RUN yum install -y mysql
然后你就会看到屏幕嘟嘟嘟的安装mysql,最后显示Successfully。docker build -f mydockerfile -t mycentmysql:1.1 .
- 这时就可以愉快的拉起来这个镜像的容器,看看到底装没装mysql客户端了。
至于仓库
- 创建完镜像,理论上应该和git一样,push到仓库,然后使用时候pull。最近docker hub有点风波,也可以自己建一个,后续再议。
以上是关于docker学习整理六 创建镜像的主要内容,如果未能解决你的问题,请参考以下文章