hao0089 发表于 2019-2-20 11:46:12

docker补充之commit镜像制作

  备注:在上一篇博文当中,修改命令,已经省略掉了sudo。所以,直接输入docker,就可以查看docker相关的命令和所需要的参数。
  另外,后缀添加--help也是可以的。
  方法一:镜像以Redis为例,pull镜像
  1) 拉取redis镜像,并查看当前系统存在的所有镜像。
  docker   pull redis
  docker   images
http://s1.运维网.com/images/20181026/1540519981731619.png
  2) 创建守护式容器,并命名为myredis.通过ps -a查看容器
  docker run -d--name=myredis redis
http://s1.运维网.com/images/20181026/1540519468553314.png
  3) 以指定格式查看容器中应用的ip地址。
  docker inspect--format='{{.NetworkSettings.IPAddress}}'myredis
http://s1.运维网.com/images/20181026/1540519631398535.png

  4)使用本地redis-cli客户端链接指定的redis服务器:
  redis-cli-h 172.17.0.2-p 6379
http://s1.运维网.com/images/20181026/1540519740264883.png
  5) 倘若没有redis-cli客户端,请参考前面redis部分。
  方法二:dockerrun创建容器。使用docker commit-m“”,提交修改后的docker容器。
  1)拉取已有镜像ubuntu14.04。
http://s1.运维网.com/images/20181026/1540521963354144.png
  2)启动并进入容器。
  docker images查看镜像,记住ubuntu的imageid
http://s1.运维网.com/images/20181026/1540522049265896.png
  dockerrun-i-t指定的IMAGEID
http://s1.运维网.com/images/20181026/1540522112526469.png
  3)添加、删除或者修改ubuntu容器。
  例如添加nginx服务器,如果出现以下问题,很有可能是ubuntu14.04的镜像源尚未更新,依赖包出现问题
http://s1.运维网.com/images/20181026/1540522903973716.png
  可以通过sudoapt-getupdate更新源和sudo apt-getupgrade升级依赖包
http://s1.运维网.com/images/20181026/1540523076583573.png
http://s1.运维网.com/images/20181026/1540523120177865.png
  由于默认时区的关系,可能需要执行dpkg-reconfiguretzdata来修改所在时区,选择Asiza,选择shanghai
http://s1.运维网.com/images/20181026/1540523162118838.png
  好了,现在可以通过apt-get获取你所需要的软件了,如nginx。
http://s1.运维网.com/images/20181026/1540523319152725.png
  输入nginx-v查看版本号,说明成功安装。
http://s1.运维网.com/images/20181026/1540523403585194.png
  4)接下来,就是将容器转换成镜像。
  输入exit退出容器:
http://s1.运维网.com/images/20181026/1540523543932509.png
  而查看容器的结果如下docker ps -a
http://s1.运维网.com/images/20181026/1540523821598885.png
  查看images的结果如下dockerimages

http://s1.运维网.com/images/20181026/1540523883320230.png
  最后保存刚刚修改的内容信息:docker commit -m“说明信息” -a"用户信息"容器ID   用户名/仓库: TAG信息
http://s1.运维网.com/images/20181026/1540524547795740.png
  其中,-m来指定提交的说明信息,跟我们使用的版本控制工具一样;-a可以指定更新的用户信息;之5c9ee44a971c后是用来创建镜像的容器的ID;最后指定目标镜像的仓库名和tag信息。创建成功后会返回这个镜像的ID信息。
  再次使用docker images命令就会发现此时多出了一个我们刚刚创建的镜像:
http://s1.运维网.com/images/20181026/1540524902483987.png
  当然如果有兴趣的话,可以将刚保存的镜像上传到dockerhub(需要**翻**墙)上,也可以搭建自己的仓库,也可以上传到其他仓库。
  接下来再写一个案例熟悉一下,搭建JAVA的开发环境。
  1)拉取centos镜像,并查看image。
  docker pullcentos
  docker images
http://s1.运维网.com/images/20181026/1540536469400892.png
  可以看到此时出现了centos的image镜像。
  2)根据上述镜像,创建容器,并命名为mycentos。
  docker run-i-t   --name=mycentoscentos
http://s1.运维网.com/images/20181026/1540536599285083.png
  可以看到在创建完容器之后,已经进入到容器当中并且显示为命令行。
  3)此时,我不小心关闭了命令窗口,name就需要重新进入docker容器当中。可以使用如下的命令:
  docker ps -a 查看存在哪些container;
  docker attach   容器名称或者CONTAINER ID就可以重新进入容器;
http://s1.运维网.com/images/20181026/1540537426164601.png
  可以使用exit命令退出容器。
  4)在容器当中安装JDK.
  安装JDK没有什么可以讲,直接yum命令安装也行,拉取源码安装也行。不过记得一定得配置环境变量,使用yum命令的时候,貌似已经帮你配置了。使用命令如下:
  yum install java-1.7.0-openjdk
http://s1.运维网.com/images/20181026/1540537719646078.png
  好吧,还是查看下环境变量,发现什么鬼都没有。
http://s1.运维网.com/images/20181026/1540537934833004.png
  然而,然而,连vim编辑器都没有。
  yuminstallvim安装下就好了
http://s1.运维网.com/images/20181026/1540538140558563.png
  安装完vim后,添加环境变量。

http://s1.运维网.com/images/20181026/1540538788932307.png
  修改如下内容,只要能找到bin目录下的java就好了。
http://s1.运维网.com/images/20181026/1540538665565128.png
  最好执行一下。
http://s1.运维网.com/images/20181026/1540538974462008.png
  校验是否配置正确,并查看版本信息。

http://s1.运维网.com/images/20181026/1540538850293970.png
  5) 在容器当中安装tomcat。
http://s1.运维网.com/images/20181026/1540539345122742.png
  下载对应版本到本地。
http://s1.运维网.com/images/20181026/1540539405431977.png
  上传后cp到docker container中,并解压,移动tomcat到指定目录下,
http://s1.运维网.com/images/20181026/1540543261810145.png
http://s1.运维网.com/images/20181026/1540543888497852.png
  exit退出容器。
http://s1.运维网.com/images/20181026/1540544052228358.png
  提交容器为镜像,docker commit mycentosmytomcat8
http://s1.运维网.com/images/20181026/1540543985150384.png
  停止mycentos容器
http://s1.运维网.com/images/20181026/1540544075911496.png
  运行新的容器mytomcat8,指定端口号8888映射到8080.
http://s1.运维网.com/images/20181026/1540543828871975.png
  进入容器,运行tomcat
http://s1.运维网.com/images/20181026/1540545158171370.png
  此时就可以访问到tomcat的主页了---------注意:此时访问页面的ip地址和端口号,为映射的,并非容器自身的端口号和IP.
http://s1.运维网.com/images/20181026/1540544735862850.png
http://s1.运维网.com/images/20181026/1540544672864474.png
  既然配置完,就全部删除了吧。
  >
http://s1.运维网.com/images/20181026/1540547227983018.png
  
http://s1.运维网.com/images/20181026/1540546970467288.png
http://s1.运维网.com/images/20181026/1540547221702968.png



页: [1]
查看完整版本: docker补充之commit镜像制作