摘要:,,當(dāng)前使用的容器名為,為。守護(hù)式容器沒有交互式會話,適合運行應(yīng)用程序和服務(wù)。大多數(shù)時候是需要以守護(hù)式來運行容器。與之前創(chuàng)建的容器相比,沒有返回會話,只是返回了一個容器。刪除容器運行中的容器無法刪除,必須先停止。
windows 7, docker 1.3.2,當(dāng)前使用的容器名為aoct,ID為614122c0aabb。
開啟已經(jīng)停止的容器可以start + 容器名
$ sudo docker start aoct
或start + 容器ID
$ sudo docker start 614122c0aabb
查看現(xiàn)在正在運行的容器:
$ sudo docker ps
還可以用docker restart重啟。
附到容器上Docker容器重新啟動時,會沿用docker run命令指定的參數(shù)來運行,所以重新啟動后會運行一個交互式會話shell。也可以用docker attach命令重新附到該容器的會話上:
$ sudo docker attach aoct
現(xiàn)在就重新回到容器的巴士提示符。
也可以用容器ID:
$ sudo docker attach 614122c0aabb創(chuàng)建守護(hù)式容器
除了這些交互式運行的容器(interactive container),也可以創(chuàng)建長期運行的容器。守護(hù)式容器(daemonized container)沒有交互式會話,適合運行應(yīng)用程序和服務(wù)。大多數(shù)時候是需要以守護(hù)式來運行容器。
可以通過添加 -d 參數(shù)來實現(xiàn),創(chuàng)建一個叫aofo的容器:
sudo docker run --name aofo -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
上面的命令會讓容器在后臺運行。使用了一個while循環(huán),改循環(huán)會一直打印hello world,知道容器或其進(jìn)程停止運行。
與之前創(chuàng)建的容器相比,沒有返回shell會話,只是返回了一個容器ID。
查看現(xiàn)在正在運行的容器:
$ sudo docker ps容器內(nèi)部在干些什么
上面創(chuàng)建了一個在后臺運行while循環(huán)的守護(hù)型容器,可以用docker logs查看容器日志:
$ sudo docker logs aofo
可以在命令后使用-f參數(shù)來健康Docker日志,這與tail -f非常相似:
$ sudo docker logs -f aofo
然后就會看到一直輸出hello world。可以通過ctrl+c來退出監(jiān)控個。
查看容器內(nèi)的進(jìn)程$ sudo docker top aofo
可以看到容器內(nèi)的所有進(jìn)程(主要是while循環(huán))、運行進(jìn)程的用戶、進(jìn)程ID:
在容器內(nèi)部運行進(jìn)程Docker 1.3 之后可以通過docker exec命令在容器內(nèi)部額外啟動新進(jìn)程??梢栽谌萜鲀?nèi)運行兩種進(jìn)程:后臺任務(wù)、交互式任務(wù)。后臺任務(wù)在容器內(nèi)運行且沒有交互需求,交互式二年五則保持在前臺運行。對于需要早容器內(nèi)部貸款shell的任務(wù),用交互式任務(wù).
后臺任務(wù)例子:$ sudo docker exec -d daemon aofo touch /etc/new_config_file
代碼解釋:
-d標(biāo)志標(biāo)明要運行一個后臺進(jìn)程,后面指定要在內(nèi)部執(zhí)行這個命令的容器名,我用的是aofo。整句命令在aofo容器內(nèi)創(chuàng)建了一個空文件夾new_config_file。
$ sudo docker exec -t -i aofo /bin/bash
代碼解釋:
和運行交互容器一一,這里-t、-i標(biāo)志位指明創(chuàng)建TTY并捕捉STDIN。后面指定要在內(nèi)部執(zhí)行這個命令的容器名,我用的是aofo。整句命令在aofo容器內(nèi)創(chuàng)建新的bash對話,就可以在該容器運行其他命令了。
停止守護(hù)式容器docker exec命令是在 Docker 1.3 引入的,之前版本不支持??捎?b>nsenter命令
docker stop命令:
$ sudo docker stop aofo
也可以用容器ID只帶容器名稱:
$ sudo docker stop ffffd958443007
如果想快速停止容器,還可以用docker kill命令:
$ sudo docker kill aofo
可以用docker ps命令產(chǎn)科當(dāng)前運行的容器。也可以用docker ps -n x,該命令會顯示最后x個容器,不論這些容器是運行還是停止的。
$ sudo docker ps -n 2深入容器
用docker inspect獲取更多的容器信息:
$ sudo docker inspect aofo
可以用-f或者--format標(biāo)志來選定查看結(jié)果。
查看容器運行狀態(tài):
$ sudo docker inspect --format="{{ .State.Running }}" aofo
查看容器IP地址:
docker@boot2docker:~$ sudo docker inspect --format="{{ .NetworkSettings.IPAddress }}" aofo
我沒有設(shè)置,所以返回空:
-f和--format標(biāo)志支持完整的GO語言模板。用它進(jìn)程查詢時,可以重復(fù)利用GO語言米板的優(yōu)勢。
可以同時制定多個容器,并顯示每個容器的結(jié)果:
$ sudo docker inspect --format="{{ .State.Running }}" aofo aoct
刪除容器除了查看容器,還可以瀏覽/var/lob/docker目錄了解Docker的工作原理,該目錄存放著Docker鏡像、容器、容器配置。所有容器都保存在/var/lib/docker/containers目錄下。
運行中的容器無法刪除,必須先停止。使用docker rm:
$ sudo docker rm 容器ID
一次性刪除所有容器:
$ sudo docker rm `docker ps -a -q`
這不是常規(guī)命令,只是小技巧。docker ps列出所有現(xiàn)有的容器,-a標(biāo)志列出所有(all)容器,-q返回容器ID。這樣就得到了容器ID列表,并傳給docker rm命令,從而達(dá)到刪除所有容器的目的。
【本人的學(xué)習(xí)筆記,主要是對《我的第一本Docker書》、《Docker —— 從入門到實踐》的學(xué)習(xí)記錄,并結(jié)合其他各種資源的學(xué)習(xí)?!?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/26359.html
摘要:系統(tǒng)有兩個程序服務(wù)端和客戶端。其中服務(wù)端是一個服務(wù)進(jìn)程,管理著所有的容器??蛻舳藙t扮演著服務(wù)端的遠(yuǎn)程控制器,可以用來控制的服務(wù)端進(jìn)程。守護(hù)進(jìn)程會處理復(fù)雜繁重的任務(wù),例如建立運行發(fā)布你的容器??蛻舳撕褪刈o(hù)進(jìn)程之間通過或者進(jìn)行通信。 預(yù)期學(xué)習(xí)目標(biāo) Docker基本概念 配置本地Docker環(huán)境 容器的生命周期與配置 端口映射和容器鏈接 利用volume保存持久化容器數(shù)據(jù) 檢查容器日志 監(jiān)...
摘要:通過類似的操作來方便用戶獲取分發(fā)和更新應(yīng)用鏡像,指令簡明,學(xué)習(xí)成本較低。例如存放操作系統(tǒng)鏡像的倉庫,稱為倉庫,其中可能包括等不同版本的鏡像。管理服務(wù)如使用實際上是執(zhí)行了命令。啟動使用即退出容器,并后臺運行。 Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制...
摘要:作者麥冬白鯨魚是什么入門教程容器是與系統(tǒng)其他部分隔離開的一系列進(jìn)程,運行這些進(jìn)程所需的所有文件都由另一個鏡像提供,從開發(fā)到測試再到生產(chǎn)的整個過程中,容器都具有可移植性和一致性??焖偃萜鞯膯雍蛣?chuàng)建無需啟動,可以實現(xiàn)秒級甚至毫秒級的啟動。 作者: 麥冬 白鯨魚 docker 是什么 Docker 入門教程 Docker容器是與系統(tǒng)其他部分隔離開的一系列進(jìn)程,運行這些進(jìn)程所需的所有文件都由...
摘要:年月日,研究人員通過郵件列表披露了容器逃逸漏洞的詳情,根據(jù)的規(guī)定會在天后也就是年月日公開。在號當(dāng)天已通過公眾號文章詳細(xì)分析了漏洞詳情和用戶的應(yīng)對之策。 美國時間2019年2月11日晚,runc通過oss-security郵件列表披露了runc容器逃逸漏洞CVE-2019-5736的詳情。runc是Docker、CRI-O、Containerd、Kubernetes等底層的容器運行時,此...
摘要:前面容器重建后需要重新運行命令綁定關(guān)聯(lián),需要命令行下生效。直接同步成功,在查看關(guān)系均有對方信息。是否要守護(hù)進(jìn)程這里是經(jīng)過多次測試,發(fā)現(xiàn)容器重啟,也會正常啟動。哨兵的配置于此類似,略過。 前面mysql容器重建后需要重新運行 change master to 命令綁定關(guān)聯(lián),8.0需要命令行下生效。redis首先想到用官方的,沒想到進(jìn)去各個基本shell命令無法使用,所以先棄了。這次由于官...
閱讀 1221·2021-09-22 15:24
閱讀 2314·2019-08-30 15:44
閱讀 2693·2019-08-30 10:55
閱讀 3387·2019-08-29 13:25
閱讀 1673·2019-08-29 13:09
閱讀 1425·2019-08-26 14:05
閱讀 1423·2019-08-26 13:58
閱讀 2012·2019-08-26 11:57