Docker系列二: docker經常使用命令總結

https://docs.docker.com/reference/  官方命令總結地址java

 

容器生命週期管理

 

1.docker run

建立一個新的容器並運行一個命令mysql

docker run [options] image [command] [arg...]

-a stdin:指定標準輸入輸出內容類型,可選STDIN/STDOUT/STDERR

-d: 後臺運行容器,並返回容器ID

-i: 以交互式運行容器,一般與-t同時使用

-p: 端口映射,格式爲 主機(宿主)端口:容器端口

-t: 爲容器從新分配一個僞輸入終端,一般與-i同時使用

--name="name": 爲容器指定一個名稱

--dns 8.8.8.8: 爲容器指定一個dns服務器,默認與宿主一致

--dns-search domain:爲容器指定一個DNS域名,默認與宿主一致

-h "hostname": 指定容器的hostname

-e arg="value": 設置環境變量

-env-file=[]:從指定文件讀入環境變量

--cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定的cpu運行

-m: 設置容器使用內存最大值

--net="bridge": 指定容器的網絡鏈接類型,支持bridge/host/none/container四種類型

--link=[]:添加連接到另一個容器

--expose=[]:開放一個端口或一組端口,宿主機使用隨機端口映射到開放的端口

#實例
docker run --name mynginx -d nginx:latest

# 映射多個端口
docker run -p 80:80/tcp -p 90:90 -v /data:/data -d nginx:latest

docker run -p 127.0.0.1:80:8080/tcp ubuntu bash

docker run -it nginx:latest /bin/bash
 
2.start/stop/restart命令

啓動/關閉/重啓容器nginx

docker start/stop/restart [options] container [container...]
 
3.kill命令

殺掉一個運行中的容器sql

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

docker kill -s KILL mynginx
 
4.rm命令

刪除一個或多個容器docker

-f:經過SIGKILL信號強制刪除一個運行中的容器
-l:移除容器間的網絡鏈接,而非容器自己
-v:-v刪除與容器關聯的卷

docker rm -f db01 db02
docker rm -l db
docker rm -v nginx01
 
5.pause/unpause命令

pause暫停,unpause恢復apache

docker pause [OPTIONS] CONTAINER [CONTAINER...]
docker unpause [OPTIONS] CONTAINER [CONTAINER...]
 
6.create命令

建立一個容器,但不啓動它(用法相似docker run)ubuntu

docker create --name mynginx nginx:latest
 
7.exec命令

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

-d:分離模式:在後臺運行
-i:及時沒有附加也保持STDIN打開
-t:分配一個僞終端

docker exec -it mynginx /bin/bash /root/secript.sh

docker exec -i -t mynginx /bin/bash          # 使用該命令能夠分配一個僞終端執行命令, 使用exit推出時,docker容器不會自動關閉

 

容器操做

1.PS服務器

列出容器網絡

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

docker ps
docker ps -n 5
docker ps -a -q
 
2.inspect

獲取容器/鏡像的元數據

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

docker inspect mysql:5.6

docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mymysql
 
3.top

查看容器中運行的進行信息,支持ps命令參數

docker top [options] container [ps options]

docker top mymysql
 
4.attach

鏈接到運行中的容器

docker attach [options] container

# --sig-proxy=false 加上參數容器仍是會退出(經過ctrl+D退出容器)
docker attach --sig-proxy=false mynginx
 
5.events

從服務器獲取實時時間(監聽)

-f: 根據條件過濾事件
--since:從指定的時間戳後顯示全部事件
--until:流水時間顯示到指定的時間爲止
若是不加任何參數,監聽當前事件

docker events
 
6.logs

獲取容器的日誌(容器中輸出到STDOUT,STDERR中的日誌)

-f: 跟蹤日誌輸出
--since: 顯示某個時間開始的全部日誌
-t: 顯示時間戳
--tail: 僅列出最新n條容器日誌

docker logs -f mynginx
 
7.wait

阻塞運行直到容器中止,而後打印它的退出代碼

docker wait container
 
8.export

將容器的文件系統做爲一個tar歸檔文件導出到stdout

docker export -o mysql-`data +%Y%m%d`.tar a404c6c174a2
 
9.port

列出指定的容器的端口映射或者查找將PRIVATE_PORT NAT到面向公衆的端口

docker port mysql
 
10.update

更新容器的一些配置(內存,cpu,是否自動啓動), 修改內存時,虛擬機必須是關機狀態,不然報錯 未知參數

root@bogon:~# docker update --help

Usage:  docker update [OPTIONS] CONTAINER [CONTAINER...]

Update configuration of one or more containers

Options:
      --blkio-weight uint16        Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)
      --cpu-period int             Limit CPU CFS (Completely Fair Scheduler) period
      --cpu-quota int              Limit CPU CFS (Completely Fair Scheduler) quota
      --cpu-rt-period int          Limit the CPU real-time period in microseconds
      --cpu-rt-runtime int         Limit the CPU real-time runtime in microseconds
  -c, --cpu-shares int             CPU shares (relative weight)
      --cpus decimal               Number of CPUs
      --cpuset-cpus string         CPUs in which to allow execution (0-3, 0,1)
      --cpuset-mems string         MEMs in which to allow execution (0-3, 0,1)
      --kernel-memory bytes        Kernel memory limit
  -m, --memory bytes               Memory limit
      --memory-reservation bytes   Memory soft limit
      --memory-swap bytes          Swap limit equal to memory plus swap: '-1' to enable unlimited swap
      --restart string             Restart policy to apply when a container exits


root@bogon:~#  docker update --memory-swap 10240000 -m 10240000 portainer

 

容器rootfs命令

1.commit

從容器建立一個新的鏡像

-a: 提交的鏡像做者
-c: 使用dockerfile指令來建立鏡像
-m: 提交時的說明文字
-p: 在提交時,將容器暫停

docker commit -a "runoob.com" -m "my apache" a404c6c174a2   myapache:v1
 
2.cp

用於容器和主機之間的數據拷貝

docker cp [options] container:src_path dest_path

docker cp [options] src_path container:dest_path

docker cp /www/runoob 96f7f14e99ab:/www/
docker cp 96f7f14e99ab:/www/ /www/runoob 
 
3.diff

檢查容器裏文件結構的修改

docker diff [options] container

docker diff mymysql

 

鏡像倉庫

1.login/logout

登錄docker hub公共倉庫(須要本身去註冊)

docker login [options] [server]
docker logout [options] [server]

-u: 登錄的用戶名
-p: 登錄的密碼
 
2.pull

從鏡像倉庫中拉取或更新指定鏡像

docker pull [options] name[:tag|@DIGEST]

-a: 拉取全部tagged鏡像
--disable-content-trust: 忽略鏡像的校驗,默認開啓

# 下載最新版java鏡像
docker pull java 
 
3.push

將本地鏡像上傳到鏡像倉庫,要先登錄到鏡像倉庫

docker push [options] name[:tag]

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

docker push myapache:v1
 
4.search

在docker hub查找鏡像

docker search [options] term

--automated: 只列出automated build類型的鏡像
--no-trunc: 顯示完整的鏡像描述
-s: 列出收藏數小於指定值的鏡像


docker search -s 10 java

 

本地鏡像管理

1.images

列出本地鏡像

docker images [options] [repository:tag]

-a: 列出本地全部鏡像(含中間映像層,默認過濾中間映像層)
--digests: 顯示鏡像的摘要信息(MD5值)
-f: 顯示知足條件的鏡像
--format: 指定返回值的模版文件
--no-trunc: 顯示完整的鏡像信息
-q: 只顯示鏡像ID

docker images

docker images ubuntu
 
2.rmi

刪除本地一個或多個鏡像

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

docker rmi -f runoob/ubuntu:v4
 
3.tag

標記本地鏡像,將其納入某一個倉庫

# 把鏡像ubuntu:15.10標記爲runoob/ubuntu:v3
docker tag ubuntu:15.10 runoob/ubuntu:v3
 
4.build

用於使用dockerfile建立鏡像(後面會講解到)

docker build [options] path | url | -
 
5.history

查看指定鏡像的建立歷史

docker history [options] image

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

將指定鏡像保存成tar歸檔文件

docker save [options] image [image ...]

-o: 輸出文件

docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3
 
7.import

從歸檔文件中建立鏡像

docker import [options] file |URL |- [repository:tag]

docker import my_ubuntu_v3.tar runoob/ubuntu:v4

 

info/version

1.info

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

docker info [options]

docker info
 
2.version

顯示docker版本信息

docker version [options]

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

docker version

 

其餘

stats

查看每一個運行的docker容器的狀態

docker stats 

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
9c5e0e259466        test02              0.02%               12.46MiB / 100MiB   12.46%              1.3kB / 0B          19.2MB / 16.4kB     2
d5183228b334        test01              0.02%               12.55MiB / 100MiB   12.55%              1.04kB / 0B         7.59MB / 16.4kB     2
相關文章
相關標籤/搜索