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