容器生命周期管理
Docker建立新容器并運作[run]
文法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS說明:
- -a stdin: 指定标準輸入輸出内容類型,可選 STDIN/STDOUT/STDERR 三項;
- -d: 背景運作容器,并傳回容器ID;
- -i: 以互動模式運作容器,通常與 -t 同時使用;
- -t: 為容器重新配置設定一個僞輸入終端,通常與 -i 同時使用;
- --name="nginx-lb": 為容器指定一個名稱;
- --dns 8.8.8.8: 指定容器使用的DNS伺服器,預設和宿主一緻;
- --dns-search example.com: 指定容器DNS搜尋域名,預設和宿主一緻;
- -h "mars": 指定容器的hostname;
- -e username="ritchie": 設定環境變量;
- --env-file=[]: 從指定檔案讀入環境變量;
- --cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運作;
- -m :設定容器使用記憶體最大值;
- --net="bridge": 指定容器的網絡連接配接類型,支援 bridge/host/none/container: 四種類型;
- --link=[]: 添加連結到另一個容器;
- --expose=[]: 開放一個端口或一組端口;
執行個體:
使用docker鏡像nginx:latest以背景模式啟動一個容器,并将容器命名為yyflightNginx:
docker run --name yyflightNginx -d nginx:latest
執行完後可使用docker ps驗證容器是否成功運作
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuMzN3QTO5QTN20CN4UTOzkTN3EzMwkDMyIDMy0SO5EjNzMTMvwVOwIjMwIzLclTOxYzMzEzLcd2bsJ2Lc12bj5ycn9Gbi52YuIjMwIzZtl2Lc9CX6MHc0RHaiojIsJye.png)
Dcoker start/stop/restart
docker start 容器名:啟動一個或多少已經被停止的容器
docker start yyflightNginx
docker stop 容器名:停止一個運作中的容器
docker stop yyflightNginx
docker restart 容器名:重新開機容器
docker restart yyflightNginx
Docker殺死運作中的容器[kill]
docker kill :殺掉一個運作中的容器。
執行個體:
殺死運作中的nginx容器yyflightNginx
docker kill yyflightNginx
Docker删除一個或者多個容器[rm]
文法:
docker rm [OPTIONS] CONTAINER [CONTAINER...]
執行個體:
1、強制删除容器 yyflightNginx001、yyflightNginx02
docker rm -f yyflightNginx001、yyflightNginx02
2、移除容器nginx01對容器db01的連接配接,連接配接名db
docker rm -l db
3、删除容器nginx01,并删除容器挂載的資料卷
docker rm -v nginx01
Docker建立新容器但不啟用[create]
文法:
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
執行個體:
使用docker鏡像nginx:latest建立一個容器,并将容器命名為yyflightNginx001
docker create --name yyflightNginx001 nginx:latest
Docker容器暫停和恢複[pause/unpause]
docker pause :暫停容器中所有的程序
暫停資料庫容器db01提供服務:
docker pause db01
docker unpause :恢複容器中所有的程序
恢複資料庫容器db01提供服務:
docker unpause db01
容器操作
檢視本地正在運作的容器[ps]
文法:
docker ps [OPTIONS]
OPTIONS說明:
- -a :顯示所有的容器,包括未運作的。
- -f :根據條件過濾顯示的内容。
- --format :指定傳回值的模闆檔案。
- -l :顯示最近建立的容器。
- -n :列出最近建立的n個容器。
- --no-trunc :不截斷輸出。
- -q :靜默模式,隻顯示容器編号。
- -s :顯示總的檔案大小。
docker ps
Docker檢視容器中運作的程序資訊[top]
docker top:檢視容器中運作的程序資訊,支援 ps 指令參數。
執行個體:
檢視容器yyflightNginx的程序資訊:
docker top yyflightNginx
Dcoker擷取容器的日志[logs]
文法:
docker logs [OPTIONS] CONTAINER
OPTIONS說明:
- -f : 跟蹤日志輸出
- --since :顯示某個開始時間的所有日志
- -t : 顯示時間戳
- --tail :僅列出最新N條容器日志
執行個體:
跟蹤檢視容器yyflightNginx的日志輸出(幫你檢視這個容器在某個時間段被執行了什麼操作):
docker logs -f yyflightNginx
Docker列出指定的容器的端口映射[port]
docker port :列出指定的容器的端口映射,或者查找将PRIVATE_PORT NAT到面向公衆的端口。
執行個體:
檢視容器yyflightNginx的端口映射情況:
docker port yyflightNginx
Docker info|version|status
Docker版本資訊檢視[version]
文法:
docker version [OPTIONS]
OPTIONS說明:
- -f :指定傳回值的模闆檔案。
docker version
檢視Docker系統資訊[info]
顯示 Docker 系統資訊,包括鏡像和容器數。
docker info
Docker服務狀态檢視[systemctl status]
systemctl status docker
Docker本地鏡像管理
檢視本地鏡像清單[images]
文法:
docker images [OPTIONS] [REPOSITORY[:TAG]]
OPTIONS說明:
- -a :列出本地所有的鏡像(含中間映像層,預設情況下,過濾掉中間映像層);
- --digests :顯示鏡像的摘要資訊;
- -f :顯示滿足條件的鏡像;
- --format :指定傳回值的模闆檔案;
- --no-trunc :顯示完整的鏡像資訊;
- -q :隻顯示鏡像ID。
docker images
Docker删除本地一個或多少鏡像[rmi]
文法:
docker rmi [OPTIONS] IMAGE [IMAGE...]
OPTIONS說明:
- -f :強制删除;
- --no-prune :不移除該鏡像的過程鏡像,預設移除;
執行個體:
強制删除本地鏡像nginx/ubuntu
docker rmi -f nginx/ubuntu
Docker給本地鏡像打标簽[tag]
docker tag : 标記本地鏡像,将其歸入某一倉庫。
文法:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
Docker鏡像打标簽在我們的實際開發中非常常用,比如說公司的項目每次開發都會釋出一個版本然後我們通過打标簽來區分不同版本,如果以後想要復原版本就可以使用指定的标簽的鏡像來建立容器。
執行個體:
1、比如說我本地現在有一個nginx的鏡像:
docker images
2、我對nginx進行了開發,釋出第一個版本,我就可以通過對這個版本打标簽,打完标簽後生成新的鏡像:
docker tag nginx nginx:v001
Docker使用Dockerfile建立鏡像[build]
文法:
docker build [OPTIONS] PATH | URL | -
OPTIONS說明:
- --build-arg=[] :設定鏡像建立時的變量;
- --cpu-shares :設定 cpu 使用權重;
- --cpu-period :限制 CPU CFS周期;
- --cpu-quota :限制 CPU CFS配額;
- --cpuset-cpus :指定使用的CPU id;
- --cpuset-mems :指定使用的記憶體 id;
- --disable-content-trust :忽略校驗,預設開啟;
- -f :指定要使用的Dockerfile路徑;
- --force-rm :設定鏡像過程中删除中間容器;
- --isolation :使用容器隔離技術;
- --label=[] :設定鏡像使用的中繼資料;
- -m :設定記憶體最大值;
- --memory-swap :設定Swap的最大值為記憶體+swap,"-1"表示不限swap;
- --no-cache :建立鏡像的過程不使用緩存;
- --pull :嘗試去更新鏡像的新版本;
- -q :安靜模式,成功後隻輸出鏡像ID;
- --rm :設定鏡像成功後删除中間容器;
- --shm-size :設定/dev/shm的大小,預設值是64M;
- --ulimit :Ulimit配置。
執行個體:
使用目前目錄的Dockerfile建立鏡像:
docker build -t w3xue/ubuntu:v1 .
使用URL github.com/creack/docker-firefox 的 Dockerfile 建立鏡像:
docker build github.com/creack/docker-firefox
Dcoker檢視指定鏡像的建立曆史[history]
文法:
docker history [OPTIONS] IMAGE
OPTIONS說明:
- -H :以可讀的格式列印鏡像大小和日期,預設為true;
- --no-trunc :顯示完整的送出記錄;
- -q :僅列出送出記錄ID。
實列:
檢視容器nginx的建立曆史記錄:
docker history nginx
鏡像倉庫相關
登入/退出Docker鏡像倉庫[login/logout]
docker login : 登入到一個Docker鏡像倉庫,如果未指定鏡像倉庫位址,預設為官方倉庫 Docker Hub
docker logout : 登出一個Docker鏡像倉庫,如果未指定鏡像倉庫位址,預設為官方倉庫 Docker Hub
文法:
docker login [OPTIONS] [SERVER]
docker logout [OPTIONS] [SERVER]
OPTIONS說明:
- -u :登陸的使用者名
- -p :登陸的密碼
執行個體:
登陸到Docker Hub:
docker login -u 使用者名 -p 密碼
登出Docker Hub:
docker logout
Docker從鏡像倉庫中拉取或者更新指定鏡像[pull]
文法:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
OPTIONS說明:
- -a :拉取所有 tagged 鏡像
- --disable-content-trust :忽略鏡像的校驗,預設開啟
實列:
從Docker Hub下載下傳最新的ubuntu鏡像
docker pull ubuntu
從Docker Hub下載下傳repository為ubuntu的所有鏡像
docker pull -a ubuntu
Docker将本地的鏡像上傳到鏡像倉庫[push]
docker push : 将本地的鏡像上傳到鏡像倉庫,要先登陸到鏡像倉庫
文法:
docker push [OPTIONS] NAME[:TAG]
OPTIONS說明:
- --disable-content-trust :忽略鏡像的校驗,預設開啟
執行個體:
上傳本地鏡像nginx:v001到鏡像倉庫中:
docker push nginx:v001
查詢Docker Hub鏡像[search]
文法:
docker search [OPTIONS] TERM
OPTIONS說明:
- --automated:棄用,隻列出自動建構類型的鏡像。
- --filter , -f:基于給定條件過濾輸出。
- --format:使用模闆格式化顯示輸出。
- --limit:Max number of search results ,預設值25。
- --no-trunc:禁止截斷輸出。
- --stars , -s:棄用,隻顯示收藏數不小于幾顆星的鏡像,移到--filter中使用。
從Docker Hub查找所有鏡像名包含redis,并且收藏星數大于10的鏡像
docker search --filter stars=10 redis
從Docker Hub查找所有鏡像名包含redis的鏡像
docker search redis
Docker學習系列文章
入門必備:十本你不容錯過的Docker入門到精通書籍推薦👉
day1、全面的Docker快速入門教程👉
day2、CentOS 8.4安裝Docker👉
day3、Windows10 Docker安裝詳細教程👉
day4、Ubuntu 20.04安裝Docker👉
day5、Docker日常工作常用指令👉
參考文章
Dcoker指令線上速查手冊
作者:追逐時光者
作者簡介:一個熱愛程式設計,善于分享,喜歡學習、探索、嘗試新事物,新技術的程式猿。
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。如果該篇文章對您有幫助的話,可以點一下右下角的【♥推薦♥】,希望能夠持續的為大家帶來好的技術文章,文中可能存在描述不正确或錯誤的地方,歡迎指正、補充,不勝感激 !