设为首页 收藏本站
查看: 1204|回复: 0

[经验分享] docker开发_在basic image的基础上创建自定义的image

[复制链接]

尚未签到

发表于 2015-4-18 01:24:29 | 显示全部楼层 |阅读模式
  方法一: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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-58134-1-1.html 上篇帖子: docker interact example 下篇帖子: 用Docker封装一个web应用(Django)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表