• 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)

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

  • 相关阅读:
    js 剪切板应用clipboardData
    正则表达式的与或非
    自定义类型转换器
    struts2类库下载
    通过ajax提交form表单
    面试官:为什么Mysql中Innodb的索引结构采取B+树?
    代码生成器:IDEA 强大的 Live Templates
    深入理解JVM,7种垃圾收集器,看完我跪了
    你能说出多线程中sleep、yield、join的用法及sleep与wait区别?
    Java8中一个极其强悍的新特性,很多人没用过(非常实用)
  • 原文地址:https://www.cnblogs.com/sqy123/p/9020266.html
Copyright © 2020-2023  润新知