日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

docker操作运行一步一步来

發(fā)布時(shí)間:2025/4/16 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker操作运行一步一步来 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

環(huán)境:CentOS 6.5 64位

https://registry.hub.docker.com/??

https://www.gitbook.com/book/yeasy/docker_practice/details ?Docker —— 從入門到實(shí)踐

http://yuedu.baidu.com/ebook/d817967416fc700abb68fca1?fr=aladdin&key=docker&f=read&qq-pf-to=pcqq.group?Docker終極指南

http://dockerpool.com/books


此版本現(xiàn)在安裝運(yùn)行有一定的問(wèn)題,建議到此鏈接docker初學(xué)跟我來(lái)

docker安裝 #?yum?install?docker-io??最新為1.5的版本

如果沒(méi)有安源,先安裝http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

#?service?docker?restart #?ps?aux|grep?docker?|grep?-v?grep root??????2470??1.4??2.0?365780?15640?pts/0????Sl???17:17???0:00?/usr/bin/docker?-d #?docker?--help??#查看docker的命令 #?docker?info #?docker?version Client?version:?1.5.0 Client?API?version:?1.17 Go?version?(client):?go1.3.3 Git?commit?(client):?a8a31ef/1.5.0 OS/Arch?(client):?linux/amd64 Server?version:?1.5.0 Server?API?version:?1.17 Go?version?(server):?go1.3.3 Git?commit?(server):?a8a31ef/1.5.0


安裝一個(gè)centos容器

#?docker?search?ubuntu???????????????????#搜索ubuntu鏡像[root@manager?~]#?docker?search?centos???#搜索centos鏡像 NAME?????????????????????????????????DESCRIPTION?????????????????????????????????????STARS?????OFFICIAL???AUTOMATED centos???????????????????????????????The?official?build?of?CentOS.???????????????????1024??????[OK]??????? ansible/centos7-ansible??????????????Ansible?on?Centos7??????????????????????????????42???????????????????[OK] tutum/centos?????????????????????????Centos?p_w_picpath?with?SSH?access.?For?the?root...???13???????????????????[OK] blalor/centos????????????????????????Bare-bones?base?CentOS?6.5?p_w_picpath????????????????9????????????????????[OK][root@manager?~]#?docker?pull?tutum/centos??#拉取一個(gè)docker鏡像到本地 Pulling?repository?tutum/centos 8daafe0f270b:?Download?complete? 6941bfcbbfca:?Download?complete? 41459f052977:?Download?complete? fd44297e2ddb:?Download?complete? e22c88592c50:?Download?complete? ffce4358d6e4:?Download?complete? 5f0574f254a5:?Download?complete? 77ad887d94d4:?Download?complete? 009a97f615dc:?Download?complete? 1d9e8ea240cb:?Download?complete? 1f071815e864:?Download?complete? Status:?Downloaded?newer?p_w_picpath?for?tutum/centos:latest [root@manager?~]#?docker?p_w_picpaths??????????#查看鏡像,這樣就可以了 REPOSITORY?????????????TAG?????????????????IMAGE?ID????????????CREATED?????????????VIRTUAL?SIZE tutum/centos???????????latest??????????????8daafe0f270b????????13?days?ago?????????292.2?MB


下面說(shuō)docker容器的運(yùn)行,ssh登錄進(jìn)去

[root@manager?~]#?docker?run?-it?tutum/centos?/bin/bash??#開始運(yùn)行一個(gè)docker [root@4c7fb1a01e9a?/]#?ls?????????????#根目錄下有個(gè)run.sh,是開啟ssh服務(wù)的 bin??etc???lib????lost+found??mnt??proc??run?????sbin????????????srv??tmp??var dev??home??lib64??media???????opt??root??run.sh??set_root_pw.sh??sys??usr[root@81b5869f7934?/]#?cat?run.sh? #!/bin/bashif?[?"${AUTHORIZED_KEYS}"?!=?"**None**"?];?thenecho?"=>?Found?authorized?keys"mkdir?-p?/root/.sshchmod?700?/root/.sshtouch?/root/.ssh/authorized_keyschmod?600?/root/.ssh/authorized_keysIFS=$'\n'arr=$(echo?${AUTHORIZED_KEYS}?|?tr?","?"\n")for?x?in?$arrdox=$(echo?$x?|sed?-e?'s/^?*//'?-e?'s/?*$//')cat?/root/.ssh/authorized_keys?|?grep?"$x"?>/dev/null?2>&1if?[?$??-ne?0?];?thenecho?"=>?Adding?public?key?to?/root/.ssh/authorized_keys:?$x"echo?"$x"?>>?/root/.ssh/authorized_keysfidone fiif?[?!?-f?/.root_pw_set?];?then/set_root_pw.sh fi exec?/usr/sbin/sshd?-D[root@81b5869f7934?/]#?cat?set_root_pw.sh? #!/bin/bashif?[?-f?/.root_pw_set?];?thenecho?"Root?password?already?set!"exit?0 fiPASS=${ROOT_PASS:-$(pwgen?-s?12?1)} _word=$(?[?${ROOT_PASS}?]?&&?echo?"preset"?||?echo?"random"?) echo?"=>?Setting?a?${_word}?password?to?the?root?user" echo?"root:$PASS"?|?chpasswdecho?"=>?Done!" touch?/.root_pw_setecho?"========================================================================" echo?"You?can?now?connect?to?this?CentOS?container?via?SSH?using:" echo?"" echo?"????ssh?-p?<port>?root@<host>" echo?"and?enter?the?root?password?'$PASS'?when?prompted" echo?"" echo?"Please?remember?to?change?the?above?password?as?soon?as?possible!" echo?"========================================================================" #需要對(duì)ssh配置做如下改動(dòng)? [root@87d9ae33bd8b?/]#?sed?-ri?'s/UsePAM?yes/#UsePAM?yes/g'?/etc/ssh/sshd_config [root@87d9ae33bd8b?/]#?sed?-ri?'s/#UsePAM?no/UsePAM?no/g'?/etc/ssh/sshd_config #先不要退出


#這時(shí)候需要新開或復(fù)制一下這個(gè)ssh,進(jìn)行下面操作:

[root@manager?~]#?docker?ps CONTAINER?ID????????IMAGE?????????????????COMMAND?????????????CREATED??????????????STATUS??????????????PORTS???????????????NAMES 87d9ae33bd8b???????tutum/centos:latest???"/bin/bash"?????????About?a?minute?ago???Up?Abouta?minute???22/tcp??????????????elegant_hodgkin?????[root@manager?~]#?docker?commit?87d9ae33bd8b?new_centos aaf36507c751aed68eb2589136cc5ade1b6f062a18fe00733a10afa3780e5c91[root@manager?~]#?docker?p_w_picpaths REPOSITORY?????????????TAG?????????????????IMAGE?ID????????????CREATED?????????????VIRTUAL?SIZE new_centos?????????????latest??????????????aaf36507c751????????6?seconds?ago???????292.2?MB[root@manager?~]#?docker?run?-d?-p?0.0.0.0:2222:22?new_centos?/run.sh 683198a36fcbb8d95cbe63d70c0daa1dc81d0bce9ebd304b731e20aef77cb0ff[root@manager?~]#?docker?ps CONTAINER?ID????????IMAGE???????????????COMMAND?????????????CREATED?????????????STATUS??????????????PORTS??????????????????NAMES 683198a36fcb???????new_centos:latest???"/run.sh"???????????3?seconds?ago???????Up?1? seconds????????0.0.0.0:2222->22/tcp???reverent_jang???????[root@manager?~]#?docker?logs?683198a36fcb?2>&1?|grep?'^and?enter' and?enter?the?root?password?'I2ihX1Fj4Aq2'?when?prompted[root@manager?~]#?ssh?-p?2222?root@localhost root@localhost's?password:?????????????#密碼即是上面寫的'I2ihX1Fj4Aq2'[root@683198a36fcb?~]#?ls?/ bin??etc???lib????lost+found??mnt??proc??run?????sbin????????????srv??tmp??var dev??home??lib64??media???????opt??root??run.sh??set_root_pw.sh??sys??usr


為什么會(huì)有些麻煩?

原因在于如果你是Ubuntu的系統(tǒng),直接就可以使用了;然而centos的系統(tǒng)需要在ssh配置里面把“UsePAM yes”禁用才可以ssh登錄,剛開始一直卡到這里:

[root@manager ~]# ssh -p 2222 root@localhost
root@localhost's password:
Connection to localhost closed.
?

也可以先下載centos的鏡像包,這樣就不會(huì)出現(xiàn)問(wèn)題:

#?wget?https://github.com/tutumcloud/tutum-centos/archive/master.zip #?unzip?tutum-centos-master.zip #?cd?tutum-centos-master #?docker?build?-t?tutum/centos:centos6?centos6? #這一步是構(gòu)建docker鏡像,是根據(jù)Dockerfile文件執(zhí)行操作指令,可以根據(jù)自己的需求修改Dockerfile #?cat?centos6/Dockerfile? FROM?centos:centos6 MAINTAINER?Feng?Honglin?<hfeng@tutum.co> RUN?yum?-y?install?openssh-server?epel-release?&&?\yum?-y?install?pwgen?&&?\rm?-f?/etc/ssh/ssh_host_dsa_key?/etc/ssh/ssh_host_rsa_key?&&?\ssh-keygen?-q?-N?""?-t?dsa?-f?/etc/ssh/ssh_host_dsa_key?&&?\ssh-keygen?-q?-N?""?-t?rsa?-f?/etc/ssh/ssh_host_rsa_key?&&?\sed?-i?"s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation?no/g"?/etc/ssh/sshd_config?&&?\sed?-i?"s/UsePAM.*/UsePAM?no/g"?/etc/ssh/sshd_config ADD?set_root_pw.sh?/set_root_pw.sh??????????????#把本地腳本復(fù)制到docker里面 ADD?run.sh?/run.sh RUN?chmod?+x?/*.sh??????????????????????????????#執(zhí)行命令 ENV?AUTHORIZED_KEYS?**None**????????????????????#設(shè)置環(huán)境變量 EXPOSE?22???????????????????????????????????????#對(duì)外22端口 CMD?["/run.sh"] #?docker?p_w_picpaths????#查看構(gòu)建的docker鏡像

?

?#給docker的內(nèi)存設(shè)置為最大100M,cpu使用率不超過(guò)50%,本地40000端口映射到docker的22端口 [root@manager?~]#?docker?run?-m?100m?-c?512?-d?-p?40000:22?new_centos?/run.sh? 566d0985af12d1a8aadfc39e94cf826a053347f1bec4084ee4b81476dcf4e7d1[root@manager?~]#?docker?ps?????#查看運(yùn)行的docker???CONTAINER?ID????????IMAGE???????????????COMMAND?????????????CREATED?????????????STATUS??????????????PORTS???????????????NAMESe10324ba99ca???????centos:centos6??????"/bin/bash"?????????38?minutes?ago??????Up?38? minutes???????????????????????????elegant_lalande

?

docker容器安裝nginx

ssh進(jìn)入容器后,安裝一個(gè)nginx

#?yum?install?nginx?-y #?/usr/sbin/nginx #?ps?aux|grep?nginx root???????154??0.0??0.2?109392??2136??????????Ss???03:28???0:00?nginx:?master?process?/usr/sbin/nginx nginx??????155??0.0??0.3?109812??3000??????????S????03:28???0:00?nginx:?worker?process

到這里,大家應(yīng)該就明白以后怎么繼續(xù)做了,具體怎么配置docker的容器,生成自己定制的一套環(huán)境,大家各自大顯身手,這篇是希望通過(guò)這些步驟明白docker具體的操作方法

?

?

tutum/centos?這個(gè)鏡像也可以這么玩,先設(shè)定密碼或者私鑰:

# docker run -d -p 2222:22 -e ROOT_PASS='mypass' new_centos /run.sh

# docker ps
CONTAINER ID????? IMAGE???????? COMMAND????? CREATED?? STATUS????PORTS????????????????? NAMES
fdf9c04e3d60??????? new_centos:latest?? "/run.sh"?????????? 5 seconds ago?????? Up 3 seconds??????? 0.0.0.0:2222->22/tcp?? determined_feynman

# ssh -p 2222 root@localhost
[root@fdf9c04e3d60 ~]# cat /etc/centos-release
CentOS Linux release 7.1.1503 (Core)

tutum/centos? 差點(diǎn)忘說(shuō)了,這個(gè)版本的容器是centos 7.1

或者用私鑰登錄

docker run -d -p 2222:22 -e AUTHORIZED_KEYS="`cat ~/.ssh/id_rsa.pub`" new_centos /run.sh


docker的常用命令

#?docker?pull?<鏡像名:tag>???????????????#拉取一個(gè)鏡像 #?docker?p_w_picpaths??????????????????????????#查看p_w_picpaths #?docker?run?-i?-t?p_w_picpath_name?/bin/bash??#交互式進(jìn)入容器 #?docker?ps??????????????????????????????#查看運(yùn)行的docker? #?docker?logs?<鏡像名:tag>???????????????#查看容器的logs #?docker?start/stop/kill?<鏡像名:tag>???? #?docker?rm?$(docker?ps?-a?-q)???????????#刪除所有容器 #?docker?rmi?$(docker?p_w_picpaths?|?grep?none?|?awk?'{print?$3}'?|?sort?-r)?#刪除所有鏡像 #?docker?build?-t?<鏡像名>?<Dockerfile路徑>??#構(gòu)建自己的鏡像 #?docker?cp?683198a36fcb:/run.sh?.???????#從docker復(fù)制一個(gè)文件到當(dāng)前目錄 #?docker?save?new_centos:latest?>?net_centos.tar??#保存鏡像 #?docker?load?<?net_centos.tar???????????#載入鏡像 #?docker?run?--help??????????????????????#更多的命令自己查看一下,相當(dāng)豐富Commands:attach????Attach?to?a?running?containerbuild?????Build?an?p_w_picpath?from?a?Dockerfilecommit????Create?a?new?p_w_picpath?from?a?container's?changescp????????Copy?files/folders?from?a?container's?filesystem?to?the?host?pathcreate????Create?a?new?containerdiff??????Inspect?changes?on?a?container's?filesystemevents????Get?real?time?events?from?the?serverexec??????Run?a?command?in?a?running?containerexport????Stream?the?contents?of?a?container?as?a?tar?archivehistory???Show?the?history?of?an?p_w_picpathp_w_picpaths????List?p_w_picpathsimport????Create?a?new?filesystem?p_w_picpath?from?the?contents?of?a?tarballinfo??????Display?system-wide?informationinspect???Return?low-level?information?on?a?container?or?p_w_picpathkill??????Kill?a?running?containerload??????Load?an?p_w_picpath?from?a?tar?archivelogin?????Register?or?log?in?to?a?Docker?registry?serverlogout????Log?out?from?a?Docker?registry?serverlogs??????Fetch?the?logs?of?a?containerport??????Lookup?the?public-facing?port?that?is?NAT-ed?to?PRIVATE_PORTpause?????Pause?all?processes?within?a?containerps????????List?containerspull??????Pull?an?p_w_picpath?or?a?repository?from?a?Docker?registry?serverpush??????Push?an?p_w_picpath?or?a?repository?to?a?Docker?registry?serverrename????Rename?an?existing?containerrestart???Restart?a?running?containerrm????????Remove?one?or?more?containersrmi???????Remove?one?or?more?p_w_picpathsrun???????Run?a?command?in?a?new?containersave??????Save?an?p_w_picpath?to?a?tar?archivesearch????Search?for?an?p_w_picpath?on?the?Docker?Hubstart?????Start?a?stopped?containerstats?????Display?a?live?stream?of?one?or?more?containers'?resource?usage?statisticsstop??????Stop?a?running?containertag???????Tag?an?p_w_picpath?into?a?repositorytop???????Lookup?the?running?processes?of?a?containerunpause???Unpause?a?paused?containerversion???Show?the?Docker?version?informationwait??????Block?until?a?container?stops,?then?print?its?exit?code Run?'docker?COMMAND?--help'?for?more?information?on?a?command

http://yeasy.gitbooks.io/docker_practice/content/appendix_command/index.html?


更精彩的docker教程,在http://www.osstep.com/course/32 PHP沙盒基于docker的自動(dòng)化實(shí)現(xiàn)


轉(zhuǎn)載于:https://blog.51cto.com/bbotte/1655588

總結(jié)

以上是生活随笔為你收集整理的docker操作运行一步一步来的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。