docker最初的2小时docker从入门到入门Word文件下载.docx

上传人:b****5 文档编号:20494201 上传时间:2023-01-23 格式:DOCX 页数:5 大小:19.38KB
下载 相关 举报
docker最初的2小时docker从入门到入门Word文件下载.docx_第1页
第1页 / 共5页
docker最初的2小时docker从入门到入门Word文件下载.docx_第2页
第2页 / 共5页
docker最初的2小时docker从入门到入门Word文件下载.docx_第3页
第3页 / 共5页
docker最初的2小时docker从入门到入门Word文件下载.docx_第4页
第4页 / 共5页
docker最初的2小时docker从入门到入门Word文件下载.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

docker最初的2小时docker从入门到入门Word文件下载.docx

《docker最初的2小时docker从入门到入门Word文件下载.docx》由会员分享,可在线阅读,更多相关《docker最初的2小时docker从入门到入门Word文件下载.docx(5页珍藏版)》请在冰豆网上搜索。

docker最初的2小时docker从入门到入门Word文件下载.docx

这个是Virtualbox,KVM这种虚拟出一个新世界的思路。

虚拟一个氛围,是Docker的做法。

例如贵公司的Linux部门以前只有3,4个工程师,然后有一个Manager,后来有30个人了,你就可以分什么内核组、驱动组、应用组等更多的组,然后又多出几个Manager。

这种组,类似于名称空间,在每一个单独名称空间的Manager,都觉得自己是个Manager,于是他会爽那么一点点。

最开始是这样的:

后来是这样的:

如果这样还不够,还可以搞声卡驱动组Manager,网卡驱动组Manager,反正可以不停地搞。

大家在各自的Container里面占山为王。

Docker就是这样的名称空间让各自在同样的Linux平台上面各自暗爽,装到你自己的容器里面爽。

安装Docker如果是Windows主机,可以下载docker-toolbox一路安装,安装过程中如果提示什么错,可以把360等类似软件关闭。

Windows安装好Docker后,使用DockerQuickstartTerminal运行。

如果是Ubuntu,可以按照16.04就是命令:

sudoapt-getupdate&

amp;

&

apt-getinstalldocker。

Ubuntu安装Docker后,可以把当前用户加到Docker用户组以便当前用户也有权限操作Dockerclient和host之间的通信socket(之后请重启Docker相关服务):

sudousermod-aGdocker$USER为了装逼需要,我们在DockerHub网页注册一个用户名,我注册的用户名是21cnbao。

这样以后,就可以自己提交自己的image了。

Docker的架构Docker中可能涉及到3个机器或者更多机器,一个运行Docker命令的client,一个包含images并以容器(Container)形式运行image的主机,一个Docker的images仓库。

client与dockerhost上面的dockerdaemon通信。

当然dockerclient和host可以运行于一台机器(我们做实验的时候是一台),默认的Docker仓库是DockerHub。

一般的流程中,client发pull命令从仓库把image拉到dockerhost,然后通过run命令指挥image到host上面弄一个Container来跑这个image。

当然也可以是相反的流程,client通过build命令在host上面创建一个自己的image,然后通过push命令把image推到仓库。

之后这个image可以被别的人或者自己pull。

image到底是个什么鬼?

Docker镜像是一个特殊的文件系统,提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。

image为特定目的而生,比如弄了个Nginx的image后,这个image就把Nginx的东西包罗万象了,无论是张三、王五、六麻子还是七癞子,无论它是什么电脑,什么操作系统,只要支持Docker,它把这个Nginx的image下载下来后,拿dockerrun命令就可以弄容器跑Nginx了。

这样,用户就不用装Nginx以及它依赖的一切包了(通常装一个软件弄依赖也能把你弄地烦躁死了)。

这样看起来,Docker实在是居家旅行,杀人越货之必备良器也!

镜像构建时,会一层层叠加,前一层是后一层的基础。

每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。

比如,删除前一层文件的操作,实际不是真的删除前一层的文件,而是仅在当前层标记为该文件已删除。

所以这个很类似Git(diff

layout/book_index_template.html|8-

text/05_Installing_Git/0_Source.markdown|14

text/05_Installing_Git/1_Linux.markdown|17

text/05_Installing_Git/2_Mac_104.markdown|11

text/05_Installing_Git/3_Mac_105.markdown|8

text/05_Installing_Git/4_Windows.markdown|7

.../1_Getting_a_Git_Repo.markdown|7-

.../0_Comparing_Commits_Git_Diff.markdown|45-

.../0_Hosting_Git_gitweb_repoorcz_github.markdown|4-

9fileschanged,115insertions(),6deletions(-)这些叠加的最后一层就是Container,所以你在Container里面改了文件,其实不会进image。

一次完整的Docker实作说了那么多后,我们必须亲自动手玩了。

下面把pull,run,build,push都玩一次,破除神秘感。

一个典型的运行流程如下:

1.client用pull命令从仓库把image拉到dockerhostdockerpull的格式是:

dockerpull[选项][DockerRegistry地址]&

lt;

仓库名&

gt;

:

标签名&

默认地址是DockerHub。

仓库名:

这里的仓库名是两段式名称,既/,“/”前面一般是用户名。

对于DockerHub,如果不给出用户名,则默认为library,也就是官方镜像。

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

baohua@ubuntu:

~$dockerpullubuntu:

14.04

14.04:

Pullingfromlibrary/ubuntu

c60055a51d74:

Downloading[&

]539.8kB/65.69MB

755da0cdb7d2:

Downloadcomplete

969d017f67e6:

37c9a9113595:

a3d9f8479786:

…运行dockerimages命令看看下载的images:

$dockerimages

REPOSITORYTAGIMAGEIDCREATEDSIZE

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

在终端1上面运行:

dockerrun-it--rmubuntu:

14.04bash在终端2上面运行:

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

$dockerps

CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES

e3a913872698ubuntu:

14.04'

bash'

11secondsagoUp10secondswizardly_elion

db1c25753e97ubuntu:

21secondsagoUp21secondsadoring_shannonimage和container之间的关系类似程序与进程之间的关系,一个静若处子,一个动如脱兔。

比如程序QQ,运行一次就是1个QQ进程,再运行一个QQ就是第2个QQ进程。

同样道理,一个image也可以运行多份Container。

3.构建自己的image现在想在Ubuntu14.04中增加Vim和GCC,构建一个增量image,因为目前的Ubuntuimage里面没有这样的命令:

root@e3a913872698:

/#vim

bash:

vim:

commandnotfound于是在Ubuntu14.04这个image基础上面,叠加一层,然后把它提交到dockerhub的21cnbao的仓库。

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

$mkdirmyubuntu

$cdmyubuntu/

$touchDockerfile用Vim编辑Dockerfile,添加如下内容:

#ubuntu14.04withvimandgcc

FROMubuntu:

MAINTAINERBarrySong&

21cnbao@&

RUNapt-getupdate&

apt-getinstall–yvimgccRUN指令的含义是在指定在源image内执行一条命令,本例更新APT缓存,并且安装Vim和GCC以形成一个增量image。

下面build这个image:

$dockerbuild-t21cnbao/myubuntu:

14.04.

time='

2017-02-21T06:

48:

0708:

00'

level=infomsg='

Unabletousesystemcertificatepool:

crypto/x509:

systemrootpoolisnotavailableonWindows'

SendingbuildcontexttoDockerdaemon2.048kB

Step1/3:

FROMubuntu:

---&

b969ab9f929b

Step2/3:

MAINTAINERBarrySong&

Runninginf1449746b58c

5dacd7a6ee5d

Removingintermediatecontainerf1449746b58c

Step3/3:

RUNapt-getupdate&

apt-getinstallvimgcc

Runninginb1469caf3509

IgntrustyInRelease

Get:

1trusty-updatesInRelease[65.9kB]

2trusty-securityInRelease[65.9kB]

3trustyRelease.gpg[933B]

4trustyRelease[58.5kB]

5trusty-updates/mainSources[485kB]

…下面运行21cnbao/myubuntu14.04这个镜像:

dockerrun-it--rm21cnbao/myubuntu:

14.04bash发现GCC和Vim都有了:

$dockerrun-it--rm21cnbao/myubuntu:

14.04bash

root@f33ee07caf43:

/#gcc

gcc:

fatalerror:

noinputfiles

compilationterminated.

/#4.通过dockerpush把image提交到仓库在DockerHub上面创建一个仓库myubuntu,该仓库创建后,全名将为21cnbao/myubuntu。

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

$dockerlogin--username=21cnbao--email=21cnbao@

Flag--emailhasbeendeprecated,willberemovedin1.14.

Password:

LoginSucceeded下面开始push:

$dockerpush21cnbao/myubuntu

2017-02-21T07:

17:

5908:

Thepushreferstoarepository[docker.io/21cnbao/myubuntu]

87157b68b121:

Pushing[&

]1.109MB/134.7MB

c9fc7024b484:

Pushing[==================================================&

]3.072kB

ca893d4b83a6:

]4.608kB

153bd22a8e96:

Pushing7.168kB

83b575865dd1:

]209.9kB

918b1e79e358:

Waiting

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

2小时结束,相信你已经爱上Docker。

相爱容易相处难,痛苦才刚刚开始。

人生若只如初见,何事秋风悲画扇。

等闲变却故人心,却道故人心易变。

后面如果有时间,再完成一个《Docker相处的8小时》。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1