zoukankan      html  css  js  c++  java
  • docker开发_在basic image的基础上创建自定义的image

    方法一:docker commit

    1. 跑一个basic image,docker新建了一个容器

    root@ubuntu:/home/thm/docker/test# docker run -i -t tanghuimin0713/ubuntu_amd64:14.04 /bin/bash 
    WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and containers can't use it. Using default external servers : [8.8.8.8 8.8.4.4]
    root@5d807872b2ba:/# 

    2. 在容器内安装apache2

    root@5d807872b2ba:/# apt-get update
    Ign http://archive.ubuntu.com trusty InRelease       
    Hit http://archive.ubuntu.com trusty Release.gpg
    Hit http://archive.ubuntu.com trusty Release
    Hit http://archive.ubuntu.com trusty/main i386 Packages
    Get:1 http://archive.ubuntu.com trusty/main Translation-en [762 kB]
    Fetched 762 kB in 34s (22.1 kB/s)                                                                                                              
    Reading package lists... Done
    root@5d807872b2ba:/# 
    root@5d807872b2ba:/# apt-get install apache2
    Reading package lists... Done
    Building dependency tree... Done
    The following extra packages will be installed:
    ...
    ...
    ...

    3. 退出容器,将刚才装了apache的容器创建成一个新的image

    root@5d807872b2ba:/# exit  
    exit
    root@ubuntu:/home/thm/docker/test# 
    root@ubuntu:/home/thm/docker/test# docker ps -l
    CONTAINER ID        IMAGE                               COMMAND             CREATED             STATUS              PORTS               NAMES
    5d807872b2ba        tanghuimin0713/ubuntu_amd64:14.04   /bin/bash           7 minutes ago       Exit 0                                  nostalgic_heisenberg   
    root@ubuntu:/home/thm/docker/test# docker commit 5d807872b2ba tanghuimin0713/ubuntu_amd64_apache2:14.04
    e7df0b3ab526c83098d54e826b4e8e1f2c6efbe0a2511c3b06b79723bacfff52
    root@ubuntu:/home/thm/docker/test# docker images
    REPOSITORY                            TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
    tanghuimin0713/ubuntu_amd64_apache2   14.04               e7df0b3ab526        3 seconds ago       248.1 MB
    scratch                               latest              6e1aa483880d        About an hour ago   0 B
    tanghuimin0713/ubuntu_amd64           14.04               6cfee0d4349b        4 hours ago         216.8 MB
    tanghuimin0713/ubuntu_amd64           latest              6cfee0d4349b        4 hours ago         216.8 MB
    tanghuimin0713/ubuntu_i386            14.04               ee57f53fe012        5 hours ago         216.8 MB
    tanghuimin0713/ubuntu_i386            latest              ee57f53fe012        5 hours ago         216.8 MB
    ubuntu                                14.04               c4ff7513909d        9 days ago          225.4 MB
    ubuntu                                trusty              c4ff7513909d        9 days ago          225.4 MB
    ubuntu                                14.04.1             c4ff7513909d        9 days ago          225.4 MB
    ubuntu                                latest              c4ff7513909d        9 days ago          225.4 MB
    ubuntu                                14.10               75204fdb260b        9 days ago          230.1 MB
    ubuntu                                utopic              75204fdb260b        9 days ago          230.1 MB
    ubuntu                                12.04               822a01ae9a15        9 days ago          108.1 MB
    ubuntu                                12.04.5             822a01ae9a15        9 days ago          108.1 MB
    ubuntu                                precise             822a01ae9a15        9 days ago          108.1 MB
    ubuntu                                12.10               c5881f11ded9        9 weeks ago         172.2 MB
    ubuntu                                quantal             c5881f11ded9        9 weeks ago         172.2 MB
    ubuntu                                13.04               463ff6be4238        9 weeks ago         169.4 MB
    ubuntu                                raring              463ff6be4238        9 weeks ago         169.4 MB
    ubuntu                                13.10               195eb90b5349        9 weeks ago         184.7 MB
    ubuntu                                saucy               195eb90b5349        9 weeks ago         184.7 MB
    jamtur01/puppetmaster                 latest              99200e07340a        11 weeks ago        312.4 MB
    ubuntu                                10.04               3db9c44f4520        4 months ago        183 MB
    ubuntu                                lucid               3db9c44f4520        4 months ago        183 MB
    root@ubuntu:/home/thm/docker/test# 

    4. run一下刚刚新创建的image,看看container内是否存在刚刚安装的apache2

    root@ubuntu:/home/thm/docker/test# docker run -t -i tanghuimin0713/ubuntu_amd64_apache2:14.04 /bin/bash 
    WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and containers can't use it. Using default external servers : [8.8.8.8 8.8.4.4]
    root@081572d422c7:/# 
    root@081572d422c7:/# 
    root@081572d422c7:/# apache
    apache2     apache2ctl  apachectl   

    5. 将新创建的image同步到docker hub

    docker push tanghuimin0713/ubuntu_amd64_apache2

    方法二:Dockerfile

    1. 在一个空目录下创建Dockerfile,并在Dockerfile中写入如下类似批处理的语句

    root@ubuntu:/home/thm/docker/test# touch Dockerfile
    root@ubuntu:/home/thm/docker/test# vim Dockerfile 
      1 FROM tanghuimin0713/ubuntu_amd64:14.04
      2 RUN apt-get update
      3 RUN apt-get install -y nginx
      4 RUN echo "Hi, I am in your container" > /usr/share/nginx/html/index.html
      5 EXPOSE 80

    Dockerfile中相关命令解释:

    FROM: 以"tanghuimin0713/ubuntu_amd64:14.04"为basic image运行一个container;

    RUN: 在container中执行命令;

    EXPOSE: 将镜像的80端口暴露在外,这样容器外可以看到这个端口并与其通信;

    2. docker build创建image

    root@ubuntu:/home/thm/docker/test# 
    root@ubuntu:/home/thm/docker/test# docker build -t="tanghuimin0713/ubuntu_amd64_nginx:14.04" .
    Uploading context  2.56 kB
    Uploading context 
    Step 0 : FROM tanghuimin0713/ubuntu_amd64:14.04
     ---> 6cfee0d4349b
    Step 1 : RUN apt-get update
     ---> Running in dedead78ac76
    Ign http://archive.ubuntu.com trusty InRelease
    Hit http://archive.ubuntu.com trusty Release.gpg
    Hit http://archive.ubuntu.com trusty Release
    Hit http://archive.ubuntu.com trusty/main i386 Packages
    Get:1 http://archive.ubuntu.com trusty/main Translation-en [762 kB]
    Fetched 762 kB in 2min 16s (5571 B/s)
    Reading package lists...
     ---> 3af4720f8ec3
    Step 2 : RUN apt-get install -y nginx
     ---> Running in e6a4a63286fe
    Reading package lists...
    Building dependency tree...
    The following extra packages will be installed:
    ...
    ...
    ...
    Processing triggers for libc-bin (2.19-0ubuntu6) ...
    Processing triggers for sgml-base (1.26+nmu4ubuntu1) ...
     ---> 409a0d5cd91b
    Step 3 : RUN echo "Hi, I am in your container" > /usr/share/nginx/html/index.html
     ---> Running in 783d8789509c
     ---> 9a5d96a41a0b
    Step 4 : EXPOSE 80
     ---> Running in a2e24fc2d4b9
     ---> 6cd5691b7c8c
    Successfully built 6cd5691b7c8c
    Removing intermediate container dedead78ac76
    Removing intermediate container e6a4a63286fe
    Removing intermediate container 783d8789509c
    Removing intermediate container a2e24fc2d4b9
    root@ubuntu:/home/thm/docker/test# 

    3.  查看image是否创建成功

    root@ubuntu:/home/thm/docker/test# docker images
    REPOSITORY                          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
    tanghuimin0713/ubuntu_amd64_nginx   14.04               6cd5691b7c8c        30 seconds ago      259.2 MB
    scratch                             latest              6e1aa483880d        2 hours ago         0 B
    tanghuimin0713/ubuntu_amd64         14.04               6cfee0d4349b        5 hours ago         216.8 MB
    tanghuimin0713/ubuntu_amd64         latest              6cfee0d4349b        5 hours ago         216.8 MB
    tanghuimin0713/ubuntu_i386          14.04               ee57f53fe012        6 hours ago         216.8 MB
    tanghuimin0713/ubuntu_i386          latest              ee57f53fe012        6 hours ago         216.8 MB
    ubuntu                              14.04.1             c4ff7513909d        9 days ago          225.4 MB
    ubuntu                              14.04               c4ff7513909d        9 days ago          225.4 MB
    ubuntu                              latest              c4ff7513909d        9 days ago          225.4 MB
    ubuntu                              trusty              c4ff7513909d        9 days ago          225.4 MB

    4. run一下新创建的image

    root@ubuntu:/home/thm/docker/test# docker run -i -t tanghuimin0713/ubuntu_amd64_nginx:14.04 /bin/bash
    root@45494a615738:/# 
    root@45494a615738:/# which nginx
    /usr/sbin/nginx

    nginx命令是存在的,成功。

    5. 将新创建的image同步到docker hub

    docker push tanghuimin0713/ubuntu_amd64_nginx:14.04

  • 相关阅读:
    tomcat与resin的比较
    Linux Resin 安装配置
    [BZOJ3456]城市规划
    ZJOI 2017 仙人掌
    「LibreOJ NOI Round #1」动态几何问题
    [SDOI2015]约数个数和
    codeforce 940F
    codeforce 940F
    codeforce 940E
    [NOI2009]植物大战僵尸
  • 原文地址:https://www.cnblogs.com/tanghuimin0713/p/3927782.html
Copyright © 2011-2022 走看看