注冊網(wǎng)站怎么做seo專員
目錄
docker容器的管理
容器創(chuàng)建
?查看容器的運行狀態(tài)
啟動容器
創(chuàng)建并啟動容器?
終止容器運行
?刪除容器
?容器的進入
?查看容器詳細信息
復(fù)制到容器中
從容器復(fù)制文件到主機
容器的導(dǎo)出與導(dǎo)入
導(dǎo)出
?導(dǎo)入
docker容器在單臺主機上支持的數(shù)量成百上千;
容器與容器之間相互隔離;
鏡像是創(chuàng)建容器的基礎(chǔ),可以理解鏡像為一個壓縮包
docker容器的管理
容器創(chuàng)建
就是將鏡像加載到容器的過程。
新創(chuàng)建的容器默認處于停止狀態(tài),不運行任何程序,需要在其中發(fā)起一個進程來啟動容器。格式:docker create [選項] 鏡像
常用選項:
-i:讓容器開啟標準輸入接受用戶輸入命令
-t:讓 Docker 分配一個偽終端 tty
-it :合起來實現(xiàn)和容器交互的作用,運行一個交互式會話 shell docker create -it nginx:latest /bin/bash
?查看容器的運行狀態(tài)
ocker ps -a #-a 選項可以顯示所有的容器CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a870532aff89 nginx:latest "/docker-entrypoint.…" 10 seconds ago Created boring_mirzakhani容器的ID號 加載的鏡像 運行的程序 創(chuàng)建時間 當(dāng)前的狀態(tài) 端口映射 名稱
啟動容器
docker start 容器的ID/名稱
docker start 8b0a7be0ff58
docker ps -a
創(chuàng)建并啟動容器?
可以直接執(zhí)行 docker run 命令, 等同于先執(zhí)行 docker create 命令,再執(zhí)行 docker start 命令。
注意:容器是一個與其中運行的 shell 命令/進程共存亡的終端,命令/進程運行容器運行, 命令/進程結(jié)束容器退出。docker 容器默認會把容器內(nèi)部第一個進程,也就是 pid=1 的程序作為docker容器是否正在運行的依據(jù),如果docker容器中 pid = 1 的進程掛了,那么docker容器便會直接退出,也就是說Docker容器中必須有一個前臺進程,否則認為容器已經(jīng)掛掉。當(dāng)利用 docker run 來創(chuàng)建容器時, Docker 在后臺的標準運行過程是:
(1)檢查本地是否存在指定的鏡像。當(dāng)鏡像不存在時,會從公有倉庫下載;
(2)利用鏡像創(chuàng)建并啟動一個容器;
(3)分配一個文件系統(tǒng)給容器,在只讀的鏡像層外面掛載一層可讀寫層;
(4)從宿主主機配置的網(wǎng)橋接口中橋接一個虛擬機接口到容器中;
(5)分配一個地址池中的 IP 地址給容器;
(6)執(zhí)行用戶指定的應(yīng)用程序,執(zhí)行完畢后容器被終止運行。
docker run centos:7 /usr/bin/bash -c ls /
docker ps -a #會發(fā)現(xiàn)創(chuàng)建了一個新容器并啟動執(zhí)行一條 shell 命令,之后就停止了
#在后臺持續(xù)運行 docker run 創(chuàng)建的容器
需要在 docker run 命令之后添加 -d 選項讓 Docker 容器以守護形式在后臺運行。并且容器所運行的程序不能結(jié)束。docker run -d centos:7 /usr/bin/bash -c "while true;do echo hello;done"docker ps -a #可以看出容器始終處于 UP,運行狀態(tài)
docker run -itd --name test1 centos:7 /bin/bash #創(chuàng)建容器并持續(xù)運行容器
終止容器運行
格式:docker stop/kill 容器的ID/名稱stop: 停止容器,可以給容器一個等待時間,以防止數(shù)據(jù)的丟失。(相當(dāng)于linux命令 kill -15)kill: 立即強行停止一個容器(相當(dāng)于linux命令 kill -9) ,不會給容器反應(yīng)時間,可能會造成數(shù)據(jù)丟失
?刪除容器
格式:docker rm [-f] 容器ID/名稱#不能刪除運行狀態(tài)的容器,只能-f強制刪除,或者先停止再刪除
#刪除所有運行狀態(tài)的容器
docker rm -f `docker ps -q`#刪除所有容器
#法一
docker rm -f `docker ps -aq`#法二
docker ps -a |awk 'NR>=2 {print $1}' |xargs docker rm -f#法三
docker rm -f $(docker ps -aq)
?容器的進入
需要進入容器進行命令操作時,可以使用 docker exec 命令進入運行著的容器。格式:docker exec -it 容器ID/名稱 /bin/bash
-i 選項表示讓容器的輸入保持打開;
-t 選項表示讓 Docker 分配一個偽終端。
docker run -it centos:7 bash
#不加 -d 選項會創(chuàng)建容器后直接進入容器進行交互,但是退出容器,容器也會停止
?查看容器詳細信息
格式:docker inspect 容器ID
復(fù)制到容器中
echo abc123 > ~/test.txt
docker cp ~/test.txt 0b3beb8ebed5:/opt/
從容器復(fù)制文件到主機
docker cp 0b3beb8ebed5:/opt/123.txt ~/123.txt
容器的導(dǎo)出與導(dǎo)入
用戶可以將任何一個 Docker 容器從一臺機器遷移到另一臺機器。
在遷移過程中,可以使用docker export 命令將已經(jīng)創(chuàng)建好的容器導(dǎo)出為容器快照文件,
無論這個容器是處于運行狀態(tài)還是停止狀態(tài)均可導(dǎo)出
??蓪?dǎo)出文件傳輸?shù)狡渌麢C器,通過相應(yīng)的導(dǎo)入命令實現(xiàn)容器的遷移。
導(dǎo)出
導(dǎo)出格式:docker export 容器ID/名稱 > 文件名方法一:
docker export 0b3beb8ebed5 > centos7.tar方法二:
docker export -o lcm.tar 0b3beb8ebed5
?導(dǎo)入
導(dǎo)入格式:cat 文件名 | docker import – 鏡像名稱:標簽
cat centos7.tar | docker import - centos7:test #導(dǎo)入后會生成鏡像,但不會創(chuàng)建容器docker import centos7.tar -- centos7:test