一、前期准备

  1、下载一个centos镜像,进入容器,安装wget

  1. docker pull centos
  2. docker run -it centos bash
  3. [root@web1 ~]# docker run -it centos bash #进入容器
  4. [root@4f1f1ca319f2 /]#
  5. [root@4f1f1ca319f2 /]#
  6. [root@4f1f1ca319f2 /]# cd
  7. [root@4f1f1ca319f2 ~]# ls
  8. anaconda-ks.cfg
  9. [root@4f1f1ca319f2 ~]# cd /etc/yum.repos.d/ #配置yum源
  10. [root@4f1f1ca319f2 yum.repos.d]# ll
  11. total 32
  12. -rw-r--r-- 1 root root 1664 Nov 23 2018 CentOS-Base.repo
  13. -rw-r--r-- 1 root root 1309 Nov 23 2018 CentOS-CR.repo
  14. -rw-r--r-- 1 root root 649 Nov 23 2018 CentOS-Debuginfo.repo
  15. -rw-r--r-- 1 root root 630 Nov 23 2018 CentOS-Media.repo
  16. -rw-r--r-- 1 root root 1331 Nov 23 2018 CentOS-Sources.repo
  17. -rw-r--r-- 1 root root 5701 Nov 23 2018 CentOS-Vault.repo
  18. -rw-r--r-- 1 root root 314 Nov 23 2018 CentOS-fasttrack.repo
  19. [root@4f1f1ca319f2 yum.repos.d]# yum install wget -y #安装wget,默认没有wget安装

  2、安装软件源

  1. mkdir backup
  2. mv c* /etc/yum.repo.d/bakcup
  3. wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  4. wget https://mirrors.aliyun.com/centos/7.6.1810/extras/x86_64/Packages/epel-release-7-11.noarch.rpm

  3、安装软件,比如nginx

yum`` ``install`` nginx -y

二、制作镜像

    说明,下面制作镜像先用之前的nginx镜像做的副本,下面才是centos镜像

  1、使用docker commit 来提交容器副本

  1. -m 提交时的描述文字
  2. dock commit -m 容器 镜像名
  3. docker commit -m 'add nginx images' mynginx zxg/my_nginx
  4. docker commit -m 'add nginx images' mynginx zxg/my_nginx:v1
  5. docker images
  6. docker ps -a
  7. [root@web1 ~]# docker ps
  8. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  9. 4f1f1ca319f2 centos "bash" About an hour ago Up About an hour musing_lichterman
  10. [root@web1 ~]# docker commit --help
  11. Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
  12. Create a new image from a container's changes
  13. Options:
  14. -a, --author string Author (e.g., "John Hannibal Smith <hannibal@a-team.com>")
  15. -c, --change list Apply Dockerfile instruction to the created image (default [])
  16. --help Print usage
  17. -m, --message string Commit message
  18. -p, --pause Pause container during commit (default true)
  19. ###制作镜像
  20. [root@web1 ~]# docker commit -m 'add nginx images' mynginx zxg/my_nginx
  21. sha256:f07837869dfc057273c8fd4dad1ddd7f391abb7c75dd4ecf8f84e33e84bc6b0d
  22. [root@web1 ~]# docker images
  23. REPOSITORY TAG IMAGE ID CREATED SIZE
  24. zxg/my_nginx latest f07837869dfc 8 seconds ago 126 MB
  25. docker.io/nginx latest e445ab08b2be 6 days ago 126 MB
  26. docker.io/alpine latest b7b28af77ffe 2 weeks ago 5.58 MB
  27. docker.io/centos latest 9f38484d220f 4 months ago 202 MB
  28. ###加版本号
  29. [root@web1 ~]# docker commit -m 'add nginx images' mynginx zxg/my_nginx:v1
  30. sha256:b164f4c07c6407420327a48dc0259c52f31cc3ae13ca0b292b8ac5cad1b0052b
  31. [root@web1 ~]# docker images
  32. REPOSITORY TAG IMAGE ID CREATED SIZE
  33. zxg/my_nginx v1 b164f4c07c64 5 seconds ago 126 MB
  34. zxg/my_nginx latest f07837869dfc 46 seconds ago 126 MB
  35. docker.io/nginx latest e445ab08b2be 6 days ago 126 MB
  36. docker.io/alpine latest b7b28af77ffe 2 weeks ago 5.58 MB
  37. docker.io/centos latest 9f38484d220f 4 months ago 202 MB
  38. [root@web1 ~]# docker run -d --name my_nginx zxg/my_nginx nginx
  39. b326027dcf4275190f7766a65510d73a5f6b15e60875254e5f729f108f809a4e
  40. [root@web1 ~]# docker ps
  41. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  42. 4f1f1ca319f2 centos "bash" About an hour ago Up About an hour musing_lichterman
  43. ###查看进程
  44. [root@web1 ~]# docker ps -a
  45. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  46. b326027dcf42 zxg/my_nginx "nginx" 38 seconds ago Exited (0) 35 seconds ago my_nginx
  47. 4f1f1ca319f2 centos "bash" About an hour ago Up About an hour musing_lichterman
  48. 64b4e32991c7 nginx "nginx -g 'daemon ..." 3 days ago Exited (0) 3 days ago mynginx1
  49. f8b2da5476ed nginx "nginx -g 'daemon ..." 3 days ago Exited (0) 3 days ago mynginx
  50. 6dbdfaf6da3a alpine "sh" 4 days ago Created distracted_shannon
  51. aee506fe7b5a alpine "sh" 4 days ago Created infallible_haibt
  52. 70620c73b9a0 alpine "sh" 4 days ago Created gallant_volhard
  53. 7655cbf87bb0 alpine "sh" 4 days ago Created agitated_brahmagupta
  54. 33fb949372e8 fce289e99eb9 "/hello" 4 days ago Created elastic_dijkstra
  55. 9de47616aea4 fce289e99eb9 "/hello" 4 days ago Created confident_fermi
  56.     centos镜像制作过程如下:
  57. [root@web1 ~]# docker ps
  58. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  59. 2940076be5f7 centos "bash" About an hour ago Up About an hour suspicious_khorana
  60. [root@web1 ~]# docker commit -m 'add centos-nginx' 2940076be5f7 zxg/centos_nginx:v1
  61. sha256:7c6604cacec13e7caf5b4f99c514009c43df88cf59c69b2ff5a608dfc8216eae
  62. [root@web1 ~]# docker images
  63. REPOSITORY TAG IMAGE ID CREATED SIZE
  64. zxg/centos_nginx v1 7c6604cacec1 13 seconds ago 698 MB
  65. docker.io/atlassian/jira-software latest c4b90dede4f3 2 days ago 624 MB
  66. zxg/my_nginx v1 b164f4c07c64 3 weeks ago 126 MB
  67. zxg/my_nginx latest f07837869dfc 3 weeks ago 126 MB
  68. docker.io/nginx latest e445ab08b2be 4 weeks ago 126 MB
  69. docker.io/alpine latest b7b28af77ffe 5 weeks ago 5.58 MB
  70. docker.io/centos latest 9f38484d220f 5 months ago 202 MB
  71. [root@web1 ~]#
  72. [root@web1 ~]# docker run -it --name centos-nginx zxg/centos_nginx:v1 /bin/bash
  73. [root@e93232ab8601 /]#
  74. [root@e93232ab8601 /]# rpm -qa nginx
  75. nginx-1.12.2-3.el7.x86_64
  76. [root@e93232ab8601 /]#
  77.     另外开一个窗口
  78. [root@web1 ~]# docker ps
  79. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  80. e93232ab8601 zxg/centos_nginx:v1 "/bin/bash" 57 seconds ago Up 55 seconds centos-nginx

  2、制作好的镜像可以上传官网(需要注册账号)

  1. docker login https:hub.docker.com
  2. docker tag b326027dcf42 docker.io/myname/mynginx #打标签
  3. docker push docker.io/myname/mynginx