docker开发_在basic image的基础上创建自定义的

系统 1668 0

方法一: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

docker开发_在basic image的基础上创建自定义的image


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论