您的位置:首页 > 运维架构 > Docker

docker筑基篇-03-使用docker-commit构建自己的镜像

2016-10-18 23:50 1041 查看
准备

创建镜像
1 启动一个容器

2 定制内容

3 提交变更

4 启动新的镜像

将镜像推送到DockerHub

docker构建镜像,至少有两种方法:

docker commit 命令

Dockerfile

本篇文章介绍如何使用
docker commit
命令来构建自己的镜像。并推送到DockerHub。

1 准备

DockerHub账号: 去这里注册就行了,https://hub.docker.com/

登录到Dockerhub,如下所示:

[root@h1 ~]# 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


下一篇将介绍使用Do
4000
ckerfile来构建自己的镜像。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  docker commit 构建镜像