02 docker容器
阿新 • • 發佈:2021-06-22
docker容器
容器就是對外提供服務的一個例項。
容器啟動的必要條件:容器內至少有一個程序執行在前臺
建立容器
# 格式 docker run [引數] [映象名稱] [執行容器的啟動命令] # 引數 -d : 以守護程序的方式執行一個容器 docker run -d [映象名稱] [cmd] --name : 指定容器的名稱 docker run -d --name [容器名稱] [映象的名稱] [cmd] -p : 指定埠對映 docker run -d -p 宿主主機埠:容器內埠 [映象名稱] [cmd] -P :隨機埠對映 docker run -d -P [映象名稱] [cmd] -i : 開啟標準輸出 -t : 建立一個偽終端 docker run -it [映象名稱] [cmd] -v : 掛載目錄到容器中 docker run -v 宿主主機目錄:容器內目錄 [映象名稱] [cmd] --rm : 容器生命週期結束時立即刪除 docker run --rm [映象名稱] [cmd] -e : 在容器中建立一個環境變數 docker run -e NAME=Centos -d [映象名稱] [cmd] --link : 連線上一個容器,實現網路互通 docker run --link 被連線的容器的名稱:連線別名 [映象名稱] [cmd] -h : 設定容器主機名 docker run -h "主機名" [映象名稱] [cmd] # docker run 執行流程 1、檢查本地是否用指定映象,如果沒有則去對應的倉庫下載映象 2、啟動容器,如果指定了命令則使用指定的命令,如果沒有則使用預設的命令 3、返回容器ID
# nginx前臺啟動
[root@docker ~]# nginx -g 'daemon off;'
檢視本機的容器列表
# 格式
docker ps [引數]
docker ps # 檢視當前系統中正在執行的容器列表
#引數
-a : 檢視系統中所有的容器。
-q : 僅顯示容器的ID
停止和啟動一個容器
# 停止
docker stop [容器的ID|名稱]
# 啟動(該容器必須是系統已經存在的容器)
docker start [容器的ID|名稱]
刪除容器
# 格式 docker rm [容器名稱|ID] # 引數 -f : 強制刪除 docker rm -f [容器名稱|ID] # 清空容器 docker rm $(docker ps -a -q)
檢視容器內容
# 格式
docker inspect [容器名稱|ID]
# 怎麼監控docker執行狀態?
docker inspect -f '{{.State.Running}}' nginx
複製命令
1、複製到容器內
docker cp [宿主主機檔案路徑] 容器ID:容器內路徑
2、複製到容器外
docker cp 容器ID:容器內路徑 [宿主主機檔案路徑]
進入容器
# 進入容器一般有四種 1、exec : 在容器外向容器內執行一個命令(官方推薦) docker exec [引數] [容器的名稱|ID] [cmd] # 案例 [root@docker ~]# docker exec nginx ls /etc/nginx/conf.d default.conf [root@docker ~]# docker exec -it nginx bash root@7147930d1a61:/# cd /etc/nginx/conf.d/ root@7147930d1a61:/etc/nginx/conf.d# ls default.conf 2、attach : 在早期docker提供的進入容器的命令(缺點:當其結束時,容器也跟著結束了) docker attach [容器ID|名稱] 3、nsenter : 建立一個管道連線上容器主ID nsenter --target $( docker inspect -f {{.State.Pid}} 30d369d70bcd) --mount --uts --ipc --net --pid 4、ssh : 通過ssh連線