备注:在上一篇博文当中,修改命令,已经省略掉了sudo。所以,直接输入docker,就可以查看docker相关的命令和所需要的参数。

         另外,后缀添加--help也是可以的。


方法一:镜像以Redis为例,pull镜像

1) 拉取redis镜像,并查看当前系统存在的所有镜像。

docker   pull redis

docker   images

docker补充之commit镜像制作


2) 创建守护式容器,并命名为myredis.通过ps -a查看容器

docker run -d  --name=myredis redis

docker补充之commit镜像制作


3) 以指定格式查看容器中应用的ip地址。

docker inspect  --format='{{.NetworkSettings.IPAddress}}'  myredis

docker补充之commit镜像制作


4)使用本地redis-cli客户端链接指定的redis服务器:

redis-cli  -h 172.17.0.2  -p 6379

docker补充之commit镜像制作


5) 倘若没有redis-cli客户端,请参考前面redis部分。



方法二:docker  run创建容器。使用docker commit  -m  “”,提交修改后的docker容器。

1)拉取已有镜像ubuntu14.04。

docker补充之commit镜像制作

2)启动并进入容器。

docker images  查看镜像,记住ubuntu的image  id

docker补充之commit镜像制作

docker  run  -i  -t  指定的IMAGE  ID 

docker补充之commit镜像制作

3)添加、删除或者修改ubuntu容器。

例如添加nginx服务器,如果出现以下问题,很有可能是ubuntu14.04的镜像源尚未更新,依赖包出现问题

docker补充之commit镜像制作

可以通过sudo  apt-get  update更新源和sudo apt-get  upgrade升级依赖包

docker补充之commit镜像制作

docker补充之commit镜像制作

由于默认时区的关系,可能需要执行dpkg-reconfigure  tzdata  来修改所在时区,选择Asiza,选择shanghai

docker补充之commit镜像制作

好了,现在可以通过apt-get获取你所需要的软件了,如nginx。

docker补充之commit镜像制作

输入nginx  -v查看版本号,说明成功安装。

docker补充之commit镜像制作



4)接下来,就是将容器转换成镜像。

输入exit退出容器:

docker补充之commit镜像制作

而查看容器的结果如下docker ps -a

docker补充之commit镜像制作

查看images的结果如下docker  images

docker补充之commit镜像制作

最后保存刚刚修改的内容信息:docker commit -m  “说明信息” -a  "用户信息"  容器ID     用户名/仓库: TAG信息

docker补充之commit镜像制作

其中, -m 来指定提交的说明信息,跟我们使用的版本控制工具一样; -a 可以指定更新的用户信息;之5c9ee44a971c后是用来创建镜像的容器的 ID;最后指定目标镜像的仓库名和 tag 信息。创建成功后会返回这个镜像的 ID 信息。


再次使用docker images命令就会发现此时多出了一个我们刚刚创建的镜像:

docker补充之commit镜像制作

当然如果有兴趣的话,可以将刚保存的镜像上传到dockerhub(需要**翻**墙)上,也可以搭建自己的仓库,也可以上传到其他仓库。



接下来再写一个案例熟悉一下,搭建JAVA的开发环境。

1)拉取centos镜像,并查看image。

docker pull  centos

docker images

docker补充之commit镜像制作

可以看到此时出现了centos的image镜像。


2)根据上述镜像,创建容器,并命名为mycentos。

docker run  -i  -t   --name=mycentos  centos

docker补充之commit镜像制作

可以看到在创建完容器之后,已经进入到容器当中并且显示为命令行。


3)此时,我不小心关闭了命令窗口,name就需要重新进入docker容器当中。可以使用如下的命令:

docker ps -a 查看存在哪些container;

docker attach   容器名称或者CONTAINER ID就可以重新进入容器;

docker补充之commit镜像制作

可以使用exit命令退出容器。


4)在容器当中安装JDK.


安装JDK没有什么可以讲,直接yum命令安装也行,拉取源码安装也行。不过记得一定得配置环境变量,使用yum命令的时候,貌似已经帮你配置了。使用命令如下:

yum install java-1.7.0-openjdk

docker补充之commit镜像制作

好吧,还是查看下环境变量,发现什么鬼都没有。

docker补充之commit镜像制作

然而,然而,连vim编辑器都没有。

yum  install  vim安装下就好了

docker补充之commit镜像制作

安装完vim后,添加环境变量。

docker补充之commit镜像制作

修改如下内容,只要能找到bin目录下的java就好了。

docker补充之commit镜像制作

最好执行一下。

docker补充之commit镜像制作

校验是否配置正确,并查看版本信息。

docker补充之commit镜像制作

5) 在容器当中安装tomcat。

docker补充之commit镜像制作

下载对应版本到本地。

docker补充之commit镜像制作


上传后cp到docker container中,并解压,移动tomcat到指定目录下,

docker补充之commit镜像制作

docker补充之commit镜像制作

exit退出容器。

docker补充之commit镜像制作

提交容器为镜像,docker commit mycentos  mytomcat8

docker补充之commit镜像制作

停止mycentos容器

docker补充之commit镜像制作

运行新的容器mytomcat8,指定端口号8888映射到8080.

docker补充之commit镜像制作

进入容器,运行tomcat

docker补充之commit镜像制作

此时就可以访问到tomcat的主页了---------注意:此时访问页面的ip地址和端口号,为映射的,并非容器自身的端口号和IP.

docker补充之commit镜像制作

docker补充之commit镜像制作


既然配置完,就全部删除了吧。

<<<先删除所有容器>>>>

docker补充之commit镜像制作

<<<再删除所有镜像>>>

docker补充之commit镜像制作

docker补充之commit镜像制作