日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

docker命令大全 随笔日记

發布時間:2024/3/12 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker命令大全 随笔日记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

docker命令大全 筆記

  • 1、容器生命周期管理
    • 1.1、run
    • 1.2、create
    • 1.3、exec
    • 1.4、start/stop/restart
    • 1.5、pause/unpause
    • 1.6、kill
    • 1.7、rm
  • 2、容器操作
    • 2.1、ps
    • 2.2、inspect
    • 2.3、top
    • 2.4、attach
    • 2.5、event
    • 2.6、logs
    • 2.7、wait
    • 2.8、export
    • 2.9、port
  • 3、容器rootfs命令
    • 3.1、commit
    • 3.2、cp
    • 3.3、diff命令
  • 4、鏡像倉庫
    • 4.1、login/logout
    • 4.2、push
    • 4.3、pull
    • 4.4、search
  • 5、本地鏡像管理
    • 5.1、images
    • 5.2、tag
    • 5.3、rmi
    • 5.4、build
    • 5.5、history
    • 5.6、save
    • 5.7、load
    • 5.8、import
  • 6、查看信息
    • 6.1、info
    • 6.2、version

記錄一些自己經常會用到的docker命令,方便自己忘了的時候回來翻閱。

1、容器生命周期管理

1.1、run

docker run :創建一個新的容器并運行一個命令

參數:

  • d: 后臺運行容器,并返回容器ID;
  • e username=“ritchie”: 設置環境變量;
  • i: 以交互模式運行容器,通常與 -t 同時使用;
  • P: 隨機端口映射,容器內部端口隨機映射到主機的端口
  • p: 指定端口映射,格式為:主機(宿主)端口:容器端口
  • t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用;
  • name=“nginx-lb”: 為容器指定一個名稱;
  • expose=[]: 開放一個端口或一組端口;
  • volume , -v: 綁定一個卷

樣例:

  • 使用docker鏡像mysql以后臺模式啟動一個容器,將容器的3307端口映射到主機的3307端口,主機的目錄 /data 映射到容器的 /data,初始密碼為root,容器命名為mysql。
docker run --name mysql -p 3307:3307 -v /data:/data -d -e MYSQL_ROOT_PASSWORD=root mysql:latest

1.2、create

docker create :創建一個新的容器但不啟動它,語法同 docker run。

樣例:

  • 使用docker鏡像nginx:latest創建一個容器,并將容器命名為myrunoob
docker create --name mysql mysql:latest

1.3、exec

docker exec :在運行的容器中執行命令

參數:

  • d :分離模式: 在后臺運行
  • i :即使沒有附加也保持STDIN 打開
  • t :分配一個偽終端

樣例:

  • 在容器 mysql 中開啟一個交互模式的終端:
docker exec -it mysql /bin/bash
  • 也可以通過 docker ps -a 命令查看已經在運行的容器,然后使用容器 ID 進入容器。
docker ps -a

1.4、start/stop/restart

  • docker start :啟動一個或多個已經被停止的容器
  • docker stop :停止一個運行中的容器
  • docker restart :重啟容器

樣例:

  • 啟動已被停止的容器mysql
docker start mysql
  • 停止運行中的容器mysql
docker stop mysql
  • 重啟容器mysql
docker restart mysql

1.5、pause/unpause

docker pause :暫停容器中所有的進程。
docker unpause :恢復容器中所有的進程。

樣例:

  • 暫停數據庫容器 mysql 提供服務。
docker pause mysql
  • 恢復數據庫容器 mysql 提供服務。
docker unpause mysql

1.6、kill

docker kill :殺掉一個運行中的容器。

參數:

  • s :向容器發送一個信號

樣例:

  • 殺掉運行中的容器mysql
docker kill -s KILL mysql

1.7、rm

docker rm :刪除一個或多個容器。

參數:

  • f :通過 SIGKILL 信號強制刪除一個運行中的容器。

  • l :移除容器間的網絡連接,而非容器本身。

  • v :刪除與容器關聯的卷。

樣例:

  • 強制刪除容器mysql,并刪除容器掛載的數據卷,
docker rm -f -v mysql

  • 刪除所有已經停止的容器:
docker rm $(docker ps -a -q)

2、容器操作

2.1、ps

docker ps : 列出容器

參數:

  • a :顯示所有的容器,包括未運行的。
  • f :根據條件過濾顯示的內容。
  • format :指定返回值的模板文件。
  • l :顯示最近創建的容器。
  • n :列出最近創建的n個容器。
  • no-trunc :不截斷輸出。
  • q :靜默模式,只顯示容器編號。
  • s :顯示總的文件大小。

列出所有在運行的容器信息。

docker ps


輸出詳情介紹:

  • CONTAINER ID: 容器 ID。
  • IMAGE: 使用的鏡像。
  • COMMAND: 啟動容器時運行的命令。
  • CREATED: 容器的創建時間。
  • STATUS: 容器狀態。狀態有7種:
created(已創建) restarting(重啟中) running(運行中) removing(遷移中) paused(暫停) exited(停止) dead(死亡)
  • PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。
  • NAMES: 自動分配的容器名稱。

列出最近創建的2個容器信息。

docker ps -n 2


列出所有創建的容器ID。

docker ps -a -q

2.2、inspect

docker inspect : 獲取容器/鏡像的元數據。

參數:

  • f :指定返回值的模板文件。
  • s :顯示總的文件大小。
  • type :為指定類型返回JSON。

樣例

  • 獲取鏡像mysql:latest的元信息。
docker inspect mysql:latest

  • 獲取正在運行的容器mymysql的 IP。
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql

2.3、top

docker top:查看容器中運行的進程信息,支持 ps 命令參數。容器運行時不一定有/bin/bash終端來交互執行top命令,而且容器還不一定有top命令,可以使用docker top來實現查看container中正在運行的進程。

樣例

  • 查看容器mysql的進程信息。
docker top mysql

2.4、attach

docker attach :連接到正在運行中的容器。要attach上去的容器必須正在運行,可以同時連接上同一個container來共享屏幕(與screen命令的attach類似)。官方文檔中說attach后可以通過CTRL-C來detach,但實際上經過我的測試,如果container當前在運行bash,CTRL-C自然是當前行的輸入,沒有退出;如果container當前正在前臺運行進程,如輸出nginx的access.log日志,CTRL-C不僅會導致退出容器,而且還stop了。這不是我們想要的,detach的意思按理應該是脫離容器終端,但容器依然運行。好在attach是可以帶上–sig-proxy=false來確保CTRL-D或CTRL-C不會關閉容器。

樣例
容器mysql將訪問日志指到標準輸出,連接到容器查看訪問信息。

docker attach --sig-proxy=false mysql

2.5、event

docker events : 從服務器獲取實時事件

參數:

  • f :根據條件過濾事件;

  • since :從指定的時間戳后顯示所有事件;

  • until :流水時間顯示到指定的時間為止;

樣例:

顯示mysql鏡像中2022年6月13日后的所有事件。

docker events -f image='mysql:latest' --since='2022-06-13'

2.6、logs

docker logs : 獲取容器的日志

參數:

  • f: 跟蹤日志輸出
  • since:顯示某個開始時間的所有日志
  • t: 顯示時間戳
  • tail:僅列出最新N條容器日志

樣例:

  • 持續輸出容器mysql的日志,始終顯示最后10行。
docker logs --tail=10 -f mysql

2.7、wait

docker wait : 阻塞運行直到容器停止,然后打印出它的退出代碼。

docker wait mysql

2.8、export

docker export : 將文件系統作為一個tar歸檔文件導出到STDOUT。

參數:

  • o : 將輸入內容寫到文件。

樣例:

  • 將name為mysql的容器按日期保存為tar文件。
docker export -o mysql-`date +%Y%m%d`.tar mysql

2.9、port

docker port :列出指定的容器的端口映射,或者查找將PRIVATE_PORT NAT到面向公眾的端口

樣例:
查看容器mysql的端口映射情況。

docker port mysql

3、容器rootfs命令

3.1、commit

docker commit :從容器創建一個新的鏡像。

參數:

  • a :提交的鏡像作者;
  • c :使用Dockerfile指令來創建鏡像;
  • m :提交時的說明文字;
  • p :在commit時,將容器暫停。

樣例:

  • 將容器4a47c082e672保存為新的鏡像,并添加提交人信息和說明信息。
docker commit -a "know_something" -m "a new image of mysql" 4a47c082e672 mysql:latest

3.2、cp

docker cp :用于容器與主機之間的數據拷貝。

  • 將主機C:/Users/Admin/mysql/data目錄拷貝到容器4a47c082e672 的/data目錄下。
docker cp C:/Users/Admin/mysql/data 4a47c082e672:/data/
  • 將主機C:/Users/Admin/mysql/data目錄拷貝到容器4a47c082e672 中,目錄重命名為data。
docker cp C:/Users/Admin/mysql/data 4a47c082e672:/data
  • 將容器4a47c082e672 的/data目錄拷貝到主機的C:/Users/Admin/mysql/目錄中。
docker cp 4a47c082e672:/data C:/Users/Admin/mysql/tmp/

3.3、diff命令

docker diff : 查看容器里文件結構。

樣例:

  • 查看容器mysql的文件結構。
docker diff mysql

4、鏡像倉庫

4.1、login/logout

docker login : 登陸到一個Docker鏡像倉庫,如果未指定鏡像倉庫地址,默認為官方倉庫 Docker Hub
docker logout : 退出Docker鏡像倉庫,如果未指定鏡像倉庫地址,默認為官方倉庫 Docker Hub

參數:

  • u :登陸的用戶名
  • p :登陸的密碼

樣例
登陸到Docker Hub,賬號密碼可以自己去官網注冊一個:https://hub.docker.com/

docker login -u 用戶名 -p 密碼

docker logout

4.2、push

docker push : 將本地的鏡像上傳到鏡像倉庫,要先登陸到鏡像倉庫,即4.1的login要先執行。

參數:

  • disable-content-trust :忽略鏡像的校驗,默認開啟

樣例
上傳本地鏡像mysql:latest到鏡像倉庫中。

docker push mysql:latest

有點奇怪,居然要打標簽才會上傳成功,圖中的用戶名是自己注冊的dockerhub的用戶名。

4.3、pull

docker pull : 從鏡像倉庫中拉取或者更新指定鏡像

參數:

  • a :拉取所有 tagged 鏡像
  • disable-content-trust :忽略鏡像的校驗,默認開啟

樣例:

  • 從Docker Hub下載mysql最新版鏡像。
docker pull mysql

第一次下載的時候很慢,500多M等了幾分鐘,下載之后,同樣的pull指令,docker不會再下載一遍,而是更新。

4.4、search

docker search : 從Docker Hub查找鏡像

參數:

  • automated :只列出 automated build類型的鏡像;
  • no-trunc :顯示完整的鏡像描述;
  • f <過濾條件>:列出收藏數不小于指定值的鏡像。

樣例:

  • 從 Docker Hub 查找所有鏡像名包含mysql,并且收藏數大于 10 的鏡像
docker search -f stars=10 mysql


圖中的參數說明:

  • NAME: 鏡像倉庫源的名稱
  • DESCRIPTION: 鏡像的描述
  • STARS: 類似 Github 里面的 star,表示點贊、喜歡的意思。
  • OFFICIAL: 是否 docker 官方發布
  • AUTOMATED: 自動構建。

5、本地鏡像管理

5.1、images

docker images : 列出本地鏡像。

參數:

  • a :列出本地所有的鏡像(含中間映像層,默認情況下,過濾掉中間映像層);
  • digests :顯示鏡像的摘要信息;
  • f :顯示滿足條件的鏡像;
  • format :指定返回值的模板文件;
  • no-trunc :顯示完整的鏡像信息;
  • q :只顯示鏡像ID。

樣例:

  • 查看本地鏡像列表。
docker images

  • 列出本地鏡像中REPOSITORY為mysql的鏡像列表。
docker images mysql

5.2、tag

docker tag : 標記本地鏡像,將其歸入某一倉庫。

樣例:

  • 將鏡像 mysql:latest 標記為 tag/mysql:v1 鏡像。
docker tag mysql:latest tag/mysql:v1

5.3、rmi

docker rmi : 刪除本地一個或多個鏡像。

參數:

  • f :強制刪除;
  • no-prune :不移除該鏡像的過程鏡像,默認移除;

樣例:

  • 強制刪除本地鏡像tag/mysql:v1。
docker rmi -f tag/mysql:v1

5.4、build

docker build 命令用于使用 Dockerfile 創建鏡像。

參數:

  • 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 :嘗試去更新鏡像的新版本;
  • quiet, -q :安靜模式,成功后只輸出鏡像 ID;
  • rm :設置鏡像成功后刪除中間容器;
  • shm-size :設置/dev/shm的大小,默認值是64M;
  • ulimit :Ulimit配置。
  • squash :將 Dockerfile 中所有的操作壓縮為一層。
  • tag, -t: 鏡像的名字及標簽,通常 name:tag 或者 name 格式;可以在一次構建中為一個鏡像設置多個標簽。
  • network: 默認 default。在構建期間設置RUN指令的網絡模式

樣例:

  • 使用當前目錄的 Dockerfile 創建鏡像,標簽為mysql:5.7。
    Dockerfile的內容
FROM hub.c.163.com/library/mysql RUN echo "character-set-server=utf8" >> /etc/mysql/mysql.conf.d/mysqld.cnf RUN service mysql restart EXPOSE 3306 docker build -t mysql:latest .

  • 通過 -f Dockerfile 文件的位置:
docker build -f /path/to/a/Dockerfile .

5.5、history

docker history : 查看指定鏡像的創建歷史。

參數:

  • H :以可讀的格式打印鏡像大小和日期,默認為true;
  • no-trunc :顯示完整的提交記錄;
  • q :僅列出提交記錄ID。

樣例:

  • 查看本地鏡像mysql/v1的創建歷史。
docker history mysql:v1

5.6、save

docker save : 將指定鏡像保存成 tar 歸檔文件。

參數:

  • o :輸出的文件。

樣例

  • 將鏡像 runoob/ubuntu:v3 生成 my_ubuntu_v3.tar 文檔
docker save -o mysql_v1.tar mysql:v1

5.7、load

docker load : 導入使用 docker save 命令導出的鏡像。

參數:

  • input , -i : 指定導入的文件,代替 STDIN。
  • quiet , -q : 精簡輸出信息。

樣例:

  • 導入鏡像:
docker load --input fedora.tar docker images

5.8、import

docker import : 從歸檔文件中創建鏡像。

參數:

  • c :應用docker 指令創建鏡像;
  • m :提交時的說明文字;

樣例:

  • 從鏡像文件mysql_v1.tar創建鏡像,命名為mysql:v2
docker import mysql_v1.tar mysql:v2

6、查看信息

6.1、info

docker info : 顯示 Docker 系統信息,包括鏡像和容器數。

實例

  • 查看docker系統信息。
docker info

6.2、version

ocker version :顯示 Docker 版本信息。

參數:

  • f :指定返回值的模板文件。

樣例:

  • 顯示 Docker 版本信息。
docker version

  • 輸出 docker server 的版本信息。
docker version -f {{.Server.Version}}

總結

以上是生活随笔為你收集整理的docker命令大全 随笔日记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。