Notice: Constant WP_DEBUG already defined in /var/www/html/wordpress/wp-content/plugins/changyan/sohuchangyan.php on line 12

Notice: Constant WP_DEBUG_LOG already defined in /var/www/html/wordpress/wp-content/plugins/changyan/sohuchangyan.php on line 13

Notice: Constant WP_DEBUG_DISPLAY already defined in /var/www/html/wordpress/wp-content/plugins/changyan/sohuchangyan.php on line 14
Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)【zoues.com】 – zoues

LOADING

Follow me

Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)【zoues.com】
六月 11, 2017|DockerPaaS

Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)【zoues.com】

Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)【zoues.com】

说了那么多后,我们必须亲自动手玩了。下面把pull,run,build,push都玩一次,破除神秘感。一个典型的运行流程如下:

1. client用pull命令从仓库把image拉到docker host

docker pull的格式是:

docker pull[选项] [Docker Registry地址]  <仓库名>:<标签名>

默认地址是 DockerHub。 仓库名:这里的仓库名是两段式名称,既 / ,“/”前面一般是用户名。对于 Docker Hub,如果不给出用户名,则默认为 library ,也就是官方镜像。

下载 Ubuntu14.04的image(以Ubuntu为例):

Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)

运行docker images命令看看下载的images:

Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)

2. 在docker host上面运行Ubuntu 14.04于containers

我们现在运行Ubuntu14.04中的bash shell,因为docker运行image于容器时,需要指定主进程(本例的主进程为bash)。

在终端1上面运行

Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)

在终端2上面运行

Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)

这样我们就运行了ubuntu14.04这个image的2次实例(得到2个容器), Linux下面的ps命令是看进程的,docker下面就是看image的实例容器了。

Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)

image和container之间的关系类似程序与进程之间的关系,一个静若处子,一个动如脱兔。比如程序QQ,运行一次就是1个QQ进程,再运行一个QQ就是第2个QQ进程。同样道理,一个image也可以运行多份container。

3. 构建自己的image

现在想在Ubuntu 14.04中增加vim和gcc,构建一个增量image,因为目前的Ubuntu image里面没有这样的命令:

Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)

于是在Ubuntu 14.04这个image基础上面,叠加一层,然后把它提交到docker hub的21cnbao的仓库。

我们需要在客户端电脑上面创建一个Dockerfile文件(该文件用于描述image),以实现在现有的Ubuntu 14.04上面做增量的目的。

Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)

用vim编辑Dockerfile,添加如下内容:

Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)

RUN 指令的含义是在指定在源image内执行一条命令,本例更新APT 缓存,并且安装vim和 gcc以形成一个增量image。

下面build这个image:

Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)

下面运行21cnbao/myubuntu 14.04这个镜像:

Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)

发现gcc和vim都有了:

Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)

4.    通过docker push把image提交到仓库

在docker hub上面创建一个仓库myubuntu,该仓库创建后,全名将为21cnbao/myubuntu。

Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)

下面push这个image到docker hub,之前我们需要登录到docker hub:

Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)

下面开始push:

Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)

通过docker hub进哥的仓库看一眼,发现大功告成了。

Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)

2小时结束,相信你已经爱上Docker。相爱容易相处难,痛苦才刚刚开始。人生若只如初见,何事秋风悲画扇。等闲变却故人心,却道故人心易变。

另:由宋宝华老师主讲的“Linux内核、驱动深度剖析与编程”高级研修班将于2017年6月14-17日在上海举行,欢迎大家参加,也可咨询010-64113137

Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)

Docker 最初的2小时(Docker从入门到入门,一次完整的docker实作)

no comments
Share