1. 程式人生 > >docker築基篇-03-使用docker-commit構建自己的映象

docker築基篇-03-使用docker-commit構建自己的映象

docker構建映象,至少有兩種方法:

  • docker commit 命令
  • Dockerfile

本篇文章介紹如何使用docker commit命令來構建自己的映象。並推送到DockerHub。

1 準備

  • 登入到Dockerhub,如下所示:
[[email protected] ~]# docker login
Username: hylexus
Password: 
Email: hylexus@163.com
WARNING: login credentials saved in /root/.docker/config.json
Login Succeeded

2 建立映象

此處我們打算,給一個centos:6.8容器安裝nginx伺服器。
並將其狀態保留,以便不用每次啟動新容器都要再次安裝nginx。

2.1 啟動一個容器

此處先啟動一個centos:6.8容器

[root@h1 ~]# docker run -it centos:6.8 /bin/bash
[root@3b09d0d9450d /]#

2.2 定製內容

給該容器新增nginx:

# 先添加個yum源
vi /etc/yum.repos.d/nginx.repo

內容如下:

# 這些內容可以從nginx官網找到
[nginx]
name=nginx repo
baseurl=http:
//nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1

安裝nginx:

yum install -y nginx
# 等待安裝完成

2.3 提交變更

# 先退出容器
[root@3b09d0d9450d /]# exit
exit
# 提交變更,類似於git的commit,只提交變化的部分
[root@h1 ~]# docker commit 3b09d0d9450d hylexus/nginx
2efd2ac407e22bb03a02123913fa5a0627a74a20d11c2f578fe19e726645c949


# 也可以像git一樣指定更加詳細的提交資訊
[root@h1 ~]# docker commit -m="add nginx" --author="hylexus" 3b09d0d9450d hylexus/nginx:webserver c12e1d27128ab89b49f240713f8a9444de4dffd8ee3703d12a51ead45a67f4a4 # 檢視 [root@h1 ~]# docker images hylexus/nginx REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hylexus/nginx webserver c12e1d27128a 39 seconds ago 295.9 MB hylexus/nginx latest 2efd2ac407e2 19 minutes ago 295.9 MB

2.4 啟動新的映象

[root@h1 ~]# docker run -it hylexus/nginx:webserver /bin/bash 

# nginx雖未自啟動,但是確實是存在的
[root@5ad89abc5bed /]# service nginx status
nginx is stopped
[root@5ad89abc5bed /]# service nginx start
Starting nginx:                                            [  OK  ]

# 可以看到nginx的master和worker程序正常執行
[root@5ad89abc5bed /]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1  12972  1908 ?        Ss   22:52   0:00 /bin/bash
root         47  0.0  0.0  45028  1204 ?        Ss   22:53   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx        49  0.0  0.0  45468  1820 ?        S    22:53   0:00 nginx: worker process                   
root         51  0.0  0.0  14896  1172 ?        R+   22:53   0:00 ps aux

3 將映象推送到DockerHub

就像github一樣的版本控制一樣。自己的docker映象也可以提交到DockerHub。

# 要先登入DockerHub
# 此處的hylexus/nginx即是映象名稱:<user-name>/<image-name>
docker push hylexus/nginx

下一篇將介紹使用Dockerfile來構建自己的映象。