docker制作镜像步骤

查看宿主机下是否有符合需求的docker镜像,操作命令如下:

 1 [root@server4 ~]# docker images 
 2 REPOSITORY                                 TAG                 IMAGE ID            CREATED             SIZE
 3 docker:5000/tomcat-https                   latest              11a4491c149a        3 months ago        333.9 MB
 4 docker:5000/trd-scanner-net                latest              7b327429bbc5        10 months ago       1.2 GB
 5 docker:5000/tomcat                         latest              b8dfe9ade316        10 months ago       333.9 MB
 6 docker:5000/python                         2.7.10              56fd9e0b9e18        13 months ago       676.3 MB
 7 docker:5000/python-java                    2.7.10              4222d775fde3        14 months ago       932.6 MB 9 docker:5000/logstash                       5.1.2               9c3e54db5b3d        15 months ago       494.4 MB
10 docker:5000/elasticsearch                  5.1.2               3b9ab09f293c        15 months ago       352.5 MB
11 docker:5000/java                           8                   d23bdf5b1b1b        15 months ago       643.1 MB13 docker:5000/mobz/elasticsearch-head        5                   b19a5c98e43b        16 months ago       823.9 MB
14 docker:5000/redis                          latest              1c2ac2024e4b        17 months ago       182.9 MB
15 docker:5000/php                            5.6.10              85a8f7dfbd55        18 months ago       444.3 MB
16 docker:5000/java                           7-jre               c27eb4ce75bb        23 months ago       334.5 MB
17 docker:5000/mongo                          latest              ddad4160b92f        2 years ago         313 MB
18 docker:5000/mysql                          latest              63a92d0c131d        2 years ago         374 MB
19 docker:5000/jplock/zookeeper               latest              1cf23317deaa        2 years ago         155.4 MB
20 docker:5000/ruby                           2.2.2               6e25aaae5cba        2 years ago         777.4 MB
21 docker:5000/python                         3.4.3               d2dc073918d4        2 years ago         756.8 MB

如果没有就需要从docker私库里pull出需要的镜像,如果私库里没有就需要自己制作上传上去或者从docker中央仓库里pull出

我需要的是java-Python的镜像,操作命令如下:

 1 [root@server4 ~]# docker pull docker:5000/python-java:2.7.10
 2 2.7.10: Pulling from python-java
 3 
 4 a3ed95caeb02: Already exists 
 5 a3ed95caeb02: Already exists 
 6 816152842605: Already exists 
 7 5dcab2c7e430: Already exists 
 8 dc54ada22a60: Already exists 
 9 b7b0de78f891: Already exists 
10 88363ed594cb: Already exists 
11 f8c4a940a0da: Already exists 
12 2640d83b37bc: Pull complete 
13 Digest: sha256:2f2fd19a5e5334877cf95263125664e611f5826df823d846c64e503cfb586f88
14 Status: Downloaded newer image for docker:5000/python-java:2.7.10

需要注意的是:docker:5000这里在/etc/hosts做了映射:ip  docker

使用该镜像创建并启动容器,以detached模式运行容器名为python-java-2.7.10,将/user目录挂载到容器中的/sqy目录

通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径。

挂载宿主机文件/home/web-test到容器内文件/usr/local/webapps,如果容器内文件/usr/local/webapps下有内容,会将下面的内容删除

1 [root@server4 ~]# docker run -d --restart always --name python-java-2.7.10  -v /usr:/sqy -ti docker:5000/python-java:2.7.10
2 a1cba830014c9c4b401c2184d6c9ca48811b4a7dc92c2e613e0f4dcef6532540  容器的id
3 [root@server4 ~]# docker ps
4 CONTAINER ID        IMAGE                                   COMMAND                  CREATED             STATUS              PORTS                      NAMES
5 a1cba830014c        docker:5000/python-java:2.7.10          "bash"                   2 minutes ago       Up About a minute                              python-java-2.7.10
6 3f340defc410        docker:5000/mongo                       "/entrypoint.sh --sto"   7 weeks ago         Up 7 weeks          0.0.0.0:27017->27017/tcp   mongo-demo

进入docker容器查询Python,java版本信息

1 [root@server4 ~]# docker exec -it cfd6e74d9c28 bash 
2 root@cfd6e74d9c28:/# python -V
3 Python 2.7.10
4 root@cfd6e74d9c28:/# java -version
5 java version "1.7.0_121"
6 OpenJDK Runtime Environment (IcedTea 2.6.8) (7u121-2.6.8-2~deb8u1)
7 OpenJDK 64-Bit Server VM (build 24.121-b00, mixed mode)

 在容器里安装了一些软件以后,再将容器制作成镜像,

1 docker commit -m "centos_with_nettools_and_wget(对容器操作了什么)" -a "Frankie(作者名)" 64b(容器id)  centos_with_net(镜像名称、版本号)
2 如果不加版本号,默认latest,我采用1.8,jdk1.8_yum:1.8
3 docker commit -m "centos_add_jdk1.8" -a "sqy" 733bacc5c9ca jdk1.8_yum:1.8

再查询docker镜像就可以看到了

 
 

  docker images

1 jdk1.8_yum                                  1.8                 428cd765479d        21 hours ago        413MB

删除docker镜像,首先删除该镜像对应的docker容器

1,停止docker容器

 1 查看运行中的docker容器
 2 [root@server4 ~]# docker ps
 3 CONTAINER ID        IMAGE                                   COMMAND                  CREATED             STATUS              PORTS                      NAMES
 4 a1cba830014c        docker:5000/python-java:2.7.10          "bash"                   About an hour ago   Up About an hour                               python-java-2.7.10
 5 3f340defc410        docker:5000/mongo  
 6 停止docker容器
 7 [root@server4 ~]# docker stop a1cba830014c
 8 a1cba830014c
 9 查看运行中的docker容器
10 [root@server4 ~]# docker ps
11 CONTAINER ID        IMAGE                                   COMMAND                  CREATED             STATUS              PORTS                      NAMES
12 3f340defc410        docker:5000/mongo                       "/entrypoint.sh --sto"   7 weeks ago         Up 7 weeks          0.0.0.0:27017->27017/tcp   mongo-demo
13 查看所有的docker容器
14 [root@server4 ~]# docker ps -a
15 CONTAINER ID        IMAGE                                   COMMAND                  CREATED             STATUS                     PORTS                      NAMES
16 a1cba830014c        docker:5000/python-java:2.7.10          "bash"                   About an hour ago   Exited (0) 3 minutes ago                              python-java-2.7.10
17 3f340defc410        docker:5000/mongo                       "/entrypoint.sh --sto"   7 weeks ago         Up 7 weeks                 0.0.0.0:27017->27017/tcp   mongo-demo
18 删除docker容器
19 [root@server4 ~]# docker rm a1cba830014c
20 a1cba830014c
21 查看所有的docker容器
22 [root@server4 ~]# docker ps -a
23 CONTAINER ID        IMAGE                                   COMMAND                  CREATED             STATUS              PORTS                      NAMES
24 3f340defc410        docker:5000/mongo                       "/entrypoint.sh --sto"   7 weeks ago         Up 7 weeks          0.0.0.0:27017->27017/tcp   mongo-demo

 也可以使用强制删除,不用stop正在运行时的容器,docker rm -f a1cba830014c

2,删除镜像

1 [root@node105 ~]# docker images
2 REPOSITORY                                  TAG                 IMAGE ID            CREATED             SIZE
3 tcr:5000/elasticsearch                      5.5.3               60503d5b81fb        8 months ago        510MB
4 caryyu/selenium-chrome                      latest              5608bb454b54        9 months ago        613MB
5 [root@node105 ~]# docker rmi caryyu/selenium-chrome   
或者是IMAGE ID (5608bb454b54)

 ----------------------------------------------------若有不正之处,欢迎大家指正,不胜感激!!!!!

猜你喜欢

转载自www.cnblogs.com/sqy123/p/9020266.html