docker操作命令大全和後臺參數

来源:https://www.cnblogs.com/x00479/archive/2019/08/09/11327754.html
-Advertisement-
Play Games

一、命令行 可以通過運行 docker ,或者 docker help 命令得到命令行的幫助信息(我們以 CentOS 為操作環境為例): [root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker help Usage: docker [OPTIONS] COMMA... ...


一、命令行

可以通過運行 docker ,或者 docker help 命令得到命令行的幫助信息(我們以 CentOS 為操作環境為例):

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker help

Usage:    docker [OPTIONS] COMMAND

A self-sufficient runtime for containers

Options:
      --config string      Location of client config files (default "/root/.docker")
  -c, --context string     Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and default context set with "docker context use")
  -D, --debug              Enable debug mode
  -H, --host list          Daemon socket(s) to connect to
  -l, --log-level string   Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info")
      --tls                Use TLS; implied by --tlsverify
      --tlscacert string   Trust certs signed only by this CA (default "/root/.docker/ca.pem")
      --tlscert string     Path to TLS certificate file (default "/root/.docker/cert.pem")
      --tlskey string      Path to TLS key file (default "/root/.docker/key.pem")
      --tlsverify          Use TLS and verify the remote
  -v, --version            Print version information and quit

Management Commands:
  builder     Manage builds
  config      Manage Docker configs
  container   Manage containers
  context     Manage contexts
  engine      Manage the docker engine
  image       Manage images
  network     Manage networks
  node        Manage Swarm nodes
  plugin      Manage plugins
  secret      Manage Docker secrets
  service     Manage services
  stack       Manage Docker stacks
  swarm       Manage Swarm
  system      Manage Docker
  trust       Manage trust on Docker images
  volume      Manage volumes

Commands:
  attach      Attach local standard input, output, and error streams to a running container
  build       Build an image from a Dockerfile
  commit      Create a new image from a container's changes
  cp          Copy files/folders between a container and the local filesystem
  create      Create a new container
  diff        Inspect changes to files or directories on a container's filesystem
  events      Get real time events from the server
  exec        Run a command in a running container
  export      Export a container's filesystem as a tar archive
  history     Show the history of an image
  images      List images
  import      Import the contents from a tarball to create a filesystem image
  info        Display system-wide information
  inspect     Return low-level information on Docker objects
  kill        Kill one or more running containers
  load        Load an image from a tar archive or STDIN
  login       Log in to a Docker registry
  logout      Log out from a Docker registry
  logs        Fetch the logs of a container
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  ps          List containers
  pull        Pull an image or a repository from a registry
  push        Push an image or a repository to a registry
  rename      Rename a container
  restart     Restart one or more containers
  rm          Remove one or more containers
  rmi         Remove one or more images
  run         Run a command in a new container
  save        Save one or more images to a tar archive (streamed to STDOUT by default)
  search      Search the Docker Hub for images
  start       Start one or more stopped containers
  stats       Display a live stream of container(s) resource usage statistics
  stop        Stop one or more running containers
  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
  top         Display the running processes of a container
  unpause     Unpause all processes within one or more containers
  update      Update configuration of one or more containers
  version     Show the Docker version information
  wait        Block until one or more containers stop, then print their exit codes

Run 'docker COMMAND --help' for more information on a command.

其中:

info、version是系統環境信息相關的命令

events、history、logs 是日誌信息相關的命令

login\pull\push\search是DockerHub服務相關的命令

其餘都是日常維護相關的命令

二、命令語法

基本用法:命令 + 參數

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker info
Client:
 Debug Mode: false

Server:
 Containers: 4
  Running: 0
  Paused: 0
  Stopped: 4
 Images: 2
 Server Version: 19.03.1
...............(省略)
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog

 Security Options:

 Kernel Version: 3.10.0-693.2.2.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker version
Client: Docker Engine - Community
 Version:           19.03.1
 API version:       1.40
 Go version:        go1.12.5
 Git commit:        74b1e89e8a
 Built:             Thu Jul 25 21:17:37 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.1
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.5
  Git commit:       74b1e89e8a
  Built:            Thu Jul 25 21:27:55 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.6
  GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc:
  Version:          1.0.0-rc8
  GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

查看已下載的鏡像

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              3556258649b2        2 weeks ago         64.2MB
hello-world         latest              fce289e99eb9        7 months ago        1.84kB
learn/tutorial      latest              a7876479f1aa        6 years ago         128MB

 單個字元的參數可以放在一起:

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker run -t -i ubuntu bash # 使用鏡像 ubuntu:latest 以交互模式啟動一個容器,在容器內執行 bash 命令,標紅部分表示使用分開的參數
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
7413c47ba209: Pull complete 
0fe7e7cbb2e8: Pull complete 
1d425c982345: Pull complete 
344da5c95cec: Pull complete 
Digest: sha256:c303f19cfe9ee92badbbbd7567bc1ca47789f79303ddcef56f77687d4744cd7a
Status: Downloaded newer image for ubuntu:latest

root@a0629a1e86e4:/# cat /etc/issue
Ubuntu 18.04.2 LTS \n \l

root@a0629a1e86e4:/# exit
exit
[root@iz2ze2bn5x2wqxdeq65wlpz ~]#
[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker run -ti ubuntu bash # 標紅部分,表示把單個字元參數,合在一起使用
root@5b84ee078161:/# exit
exit
[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker rm imgid-1 imgid-2 # 標紅部分,表示把多個參數放在一行使用
Error: No such container: imgid-1
Error: No such container: imgid-2

二、Docker 後臺進程參數

參數介紹
--api-enable-cors=false 遠程API調用。
-b, --bridge="" 橋接一個系統上的網橋設備到 Docker 容器里,當使用 none 可以停用容器里的網路
--bip="" 使用 CIDR 地址來設定網路橋的 IP。此參數和 -b 不能一起使用。
-D, --debug=false 開啟Debug模式。例如:docker -d -D
-d, --daemon=false 開啟Daemon模式。
--dns=[] 設置容器使用DNS伺服器。例如: docker -d --dns 8.8.8.8
-dns-search=[] 設置容器使用指定的DNS搜索功能變數名稱。如: docker -d --dns-search example.com
--exec-driver="native" 設置容器使用指定的運行時驅動。如:docker -d -e lxc
-G, --group="docker" 在後臺運行模式下,賦予指定的Group到相應的unix socket上。註意,當此參數 --group 賦予空字元串時,將去除組信息
-g, --graph="/var/lib/docker" 設置Docker運行時根目錄
-H, --host=[] 設置後臺模式下指定socket綁定,可以綁定一個或多個 tcp://host:port, unix:///path/to/socket, fd://* 或 fd://socketfd。如:$ docker -H tcp://0.0.0.0:2375 ps 或者$ export DOCKER_HOST="tcp://0.0.0.0:2375"$ docker ps
-icc=true 設置啟用內聯容器的通信。
--ip="0.0.0.0" 設置容器綁定IP時使用的預設IP地址
--ip-forward=true 設置啟動容器的 net.ipv4.ip_forward
--iptables=true 設置啟動Docker容器自定義的iptable規則
--mtu=0 設置容器網路的MTU值,如果沒有這個參數,選用預設 route MTU,如果沒有預設route,就設置成常量值 1500。
-p, --pidfile="/var/run/docker.pid" 設置後臺進程PID文件路徑。
-r, --restart=true 設置重啟之前運行中的容器
-s, --storage-driver="" 設置容器運行時使用指定的存儲驅動,如,指定使用devicemapper,可以這樣:docker -d -s devicemapper
--selinux-enabled=false 設置啟用selinux支持
--storage-opt=[] 設置存儲驅動的參數

三、Docker 命令大全

容器生命周期管理

    run

    start/stop/restart

    kill

    rm

    pause/unpause

    create

    exec

容器操作

    ps

    inspect

    top

    attach

    events

    logs

    wait

    export

    port

容器rootfs命令

    commit

    cp

    diff

鏡像倉庫

    login/logout

    pull

    push

    search

本地鏡像管理

    images

    rmi

    tag

    build

    history

    save

    load

    import

Docker信息|版本

    info

    version

 


 

1、docker run :創建一個新的容器並運行一個命令

語法:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS說明:

-a stdin: 指定標準輸入輸出內容類型,可選 STDIN/STDOUT/STDERR 三項;
-d: 後臺運行容器,並返回容器ID;
-i: 以交互模式運行容器,通常與 -t 同時使用;
-P: 隨機埠映射,容器內部埠隨機映射到主機的高埠
-p: 指定埠映射,格式為:主機(宿主)埠:容器埠
-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=[]: 開放一個埠或一組埠;
--volume , -v:    綁定一個捲

實例:

 使用docker鏡像nginx:latest以後臺模式啟動一個容器,並將容器命名為mynginx。

docker run --name mynginx -d nginx:latest

使用鏡像nginx:latest以後臺模式啟動一個容器,並將容器的80埠映射到主機隨機埠。

docker run -P -d nginx:latest

使用鏡像 nginx:latest,以後臺模式啟動一個容器,將容器的 80 埠映射到主機的 80 埠,主機的目錄 /data 映射到容器的 /data。

docker run -p 80:80 -v /data:/data -d nginx:latest

綁定容器的 8080 埠,並將其映射到本地主機 127.0.0.1 的 80 埠上。

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

使用鏡像nginx:latest以交互模式啟動一個容器,在容器內執行/bin/bash命令。

docker run -it nginx:latest /bin/bash

 

2、docker start :啟動一個或多個已經被停止的容器

      docker stop :停止一個運行中的容器

      docker restart :重啟容器

語法:docker start / stop / restart [OPTIONS] CONTAINER [CONTAINER...]

實例:

啟動已被停止的容器mydocker

docker start mydocker

停止運行中的容器mydocker

docker stop mydocker

重啟容器mydocker

docker restart mydocker

 

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

語法:docker kill [OPTIONS] CONTAINER [CONTAINER...]

OPTIONS說明:

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

實例:

殺掉運行中的容器mynginx

docker kill -s KILL mynginx

 

4、docker rm :刪除一個或多個容器

語法:docker rm [OPTIONS] CONTAINER [CONTAINER...]

OPTIONS說明:

-f :通過SIGKILL信號強制刪除一個運行中的容器
-l :移除容器間的網路連接,而非容器本身
-v :刪除與容器關聯的捲

實例:

強制刪除容器db01、db02

docker rm -f db01 db02

移除容器nginx01對容器db01的連接,連接名db

docker rm -l db

刪除容器nginx01,並刪除容器掛載的數據捲

docker rm -v nginx01

 

5、docker pause :暫停容器中所有的進程。

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

語法:docker pause / unpause [OPTIONS] CONTAINER [CONTAINER...]

實例:

暫停資料庫容器db01提供服務。

docker pause db01

恢複數據庫容器db01提供服務。

docker unpause db01

 

6、docker create :創建一個新的容器但不啟動它。

用法同 docker run。

語法:

docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

語法同 docker run。

實例:

使用docker鏡像nginx:latest創建一個容器,並將容器命名為mydocker

docker create  --name mydocker  nginx:latest

 

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

語法:

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

OPTIONS說明:

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

實例:

在容器 mynginx 中以交互模式執行容器內 /root/myscripts.sh 腳本:

docker exec -it mynginx /bin/sh /root/myscripts.sh

在容器 mynginx 中開啟一個交互模式的終端:

docker exec -i -t  mynginx /bin/bash

也可以通過 docker ps -a 命令查看已經在運行的容器,然後使用容器 ID 進入容器。

查看已經在運行的容器 ID:

# docker ps -a 
...
9df70f9a0714        openjdk             "/usercode/script.sh…" 
...

第一列的 9df70f9a0714 就是容器 ID。

通過 exec 命令對指定的容器執行 bash:

docker exec -it 9df70f9a0714 /bin/bash

 

8、docker ps : 列出容器

語法:docker ps [OPTIONS]

OPTIONS說明:

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

實例:

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

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                ...  PORTS                    NAMES
09b93464c2f7   nginx:latest   "nginx -g 'daemon off" ...  80/tcp, 443/tcp          myimages
96f7f14e99ab   mysql:5.6      "docker-entrypoint.sh" ...  0.0.0.0:3306->3306/tcp   mymysql

列出最近創建的5個容器信息:

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker ps -n 5
CONTAINER ID        IMAGE               COMMAND                   CREATED           
09b93464c2f7        nginx:latest        "nginx -g 'daemon off"    2 days ago   ...     
b8573233d675        nginx:latest        "/bin/bash"               2 days ago   ...     
b1a0703e41e7        nginx:latest        "nginx -g 'daemon off"    2 days ago   ...    
f46fb1dec520        5c6e1090e771        "/bin/sh -c 'set -x \t"   2 days ago   ...   
a63b4a5597de        860c279d2fec        "bash"                    2 days ago   ...

列出所有創建的容器ID:

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker ps -a -q
09b93464c2f7
b8573233d675
b1a0703e41e7
f46fb1dec520
a63b4a5597de
6a4aa42e947b
de7bb36e7968
43a432b73776
664a8ab1a585
ba52eb632bbd

根據條件過濾顯示的內容。

根據標簽過濾:

$ docker run -d --name=test-nginx --label color=blue nginx
$ docker ps --filter "label=color"
$ docker ps --filter "label=color=blue"

根據名稱過濾:

$ docker ps --filter"name=test-nginx"

根據狀態過濾:

$ docker ps -a --filter 'exited=0'
$ docker ps --filter status=running
$ docker ps --filter status=paused

根據鏡像過濾:

#鏡像名稱
$ docker ps --filter ancestor=nginx

#鏡像ID
$ docker ps --filter ancestor=d0e008c6cf02

根據啟動順序過濾:

$ docker ps -f before=9c3527ed70ce
$ docker ps -f since=6e63f6ff38b0

 

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

語法:docker inspect [OPTIONS] NAME|ID [NAME|ID...]

OPTIONS說明:

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

實例:

獲取鏡像mysql:5.6的元信息。

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker inspect mysql:5.6
[
    {
        "Id": "sha256:2c0964ec182ae9a045f866bbc2553087f6e42bfc16074a74fb820af235f070ec",
        "RepoTags": [
            "mysql:5.6"
        ],
        "RepoDigests": [],
        "Parent": "",
        "Comment": "",
        "Created": "2016-05-24T04:01:41.168371815Z",
        "Container": "e0924bc460ff97787f34610115e9363e6363b30b8efa406e28eb495ab199ca54",
        "ContainerConfig": {
            "Hostname": "b0cf605c7757",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "3306/tcp": {}
            },
...

獲取正在運行的容器mymysql的 IP。

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mymysql
172.17.0.3

 

10、docker top :查看容器中運行的進程信息,支持 ps 命令參數。

語法:docker top [OPTIONS] CONTAINER [ps OPTIONS]

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

實例:

查看容器mymysql的進程信息。

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker top mymysql
UID    PID    PPID    C      STIME   TTY  TIME       CMD
999    40347  40331   18     00:58   ?    00:00:02   mysqld

查看所有運行容器的進程信息。

for i in  `docker ps |grep Up|awk '{print $1}'`;do echo \ &&docker top $i; done

 

11、docker attach :連接到正在運行中的容器。

語法:docker attach [OPTIONS] CONTAINER

要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不會關閉容器。

實例:

容器mynginx將訪問日誌指到標準輸出,連接到容器查看訪問信息。

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker attach --sig-proxy=false mynginx
192.168.239.1 - - [10/Jul/2016:16:54:26 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36" "-"

 

12、docker events:從伺服器獲取實時事件

 語法:docker events [OPTIONS]

OPTIONS說明:

-f :根據條件過濾事件;
--since :從指定的時間戳後顯示所有事件;
--until :流水時間顯示到指定的時間為止;

實例:

顯示docker 2016年7月1日後的所有事件。

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker events  --since="1467302400"
2016-07-08T19:44:54.501277677+08:00 network connect 66f958fd13dc4314ad20034e576d5c5eba72e0849dcc38ad9e8436314a4149d4 (container=b8573233d675705df8c89796a2c2687cd8e36e03646457a15fb51022db440e64, name=bridge, type=bridge)
2016-07-08T19:44:54.723876221+08:00 container start b8573233d675705df8c89796a2c2687cd8e36e03646457a15fb51022db440e64 (image=nginx:latest, name=elegant_albattani)
2016-07-08T19:44:54.726110498+08:00 container resize b8573233d675705df8c89796a2c2687cd8e36e03646457a15fb51022db440e64 (height=39, image=nginx:latest, name=elegant_albattani, width=167)
2016-07-08T19:46:22.137250899+08:00 container die b8573233d675705df8c89796a2c2687cd8e36e03646457a15fb51022db440e64 (exitCode=0, image=nginx:latest, name=elegant_albattani)
...

顯示docker 鏡像為mysql:5.6 2016年7月1日後的相關事件。

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker events -f "image"="mysql:5.6" --since="1467302400" 
2016-07-11T00:38:53.975174837+08:00 container start 96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10 (image=mysql:5.6, name=mymysql)
2016-07-11T00:51:17.022572452+08:00 container kill 96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10 (image=mysql:5.6, name=mymysql, signal=9)
2016-07-11T00:51:17.132532080+08:00 container die 96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10 (exitCode=137, image=mysql:5.6, name=mymysql)
2016-07-11T00:51:17.514661357+08:00 container destroy 96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10 (image=mysql:5.6, name=mymysql)
2016-07-11T00:57:18.551984549+08:00 container create c8f0a32f12f5ec061d286af0b1285601a3e33a90a08ff1706de619ac823c345c (image=mysql:5.6, name=mymysql)
2016-07-11T00:57:18.557405864+08:00 container attach c8f0a32f12f5ec061d286af0b1285601a3e33a90a08ff1706de619ac823c345c (image=mysql:5.6, name=mymysql)
2016-07-11T00:57:18.844134112+08:00 container start c8f0a32f12f5ec061d286af0b1285601a3e33a90a08ff1706de619ac823c345c (image=mysql:5.6, name=mymysql)
2016-07-11T00:57:19.140141428+08:00 container die c8f0a32f12f5ec061d286af0b1285601a3e33a90a08ff1706de619ac823c345c (exitCode=1, image=mysql:5.6, name=mymysql)
2016-07-11T00:58:05.941019136+08:00 container destroy c8f0a32f12f5ec061d286af0b1285601a3e33a90a08ff1706de619ac823c345c (image=mysql:5.6, name=mymysql)
2016-07-11T00:58:07.965128417+08:00 container create a404c6c174a21c52f199cfce476e041074ab020453c7df2a13a7869b48f2f37e (image=mysql:5.6, name=mymysql)
2016-07-11T00:58:08.188734598+08:00 container start a404c6c174a21c52f199cfce476e041074ab020453c7df2a13a7869b48f2f37e (image=mysql:5.6, name=mymysql)
2016-07-11T00:58:20.010876777+08:00 container top a404c6c174a21c52f199cfce476e041074ab020453c7df2a13a7869b48f2f37e (image=mysql:5.6, name=mymysql)
2016-07-11T01:06:01.395365098+08:00 container top a404c6c174a21c52f199cfce476e041074ab020453c7df2a13a7869b48f2f37e (image=mysql:5.6, name=mymysql)
...

如果指定的時間是到秒級的,需要將時間轉成時間戳。如果時間為日期的話,可以直接使用,如--since="2016-07-01"。

 

13、docker logs : 獲取容器的日誌

語法:docker logs [OPTIONS] CONTAINER

OPTIONS說明:

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

實例:

跟蹤查看容器mynginx的日誌輸出。

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker logs -f mynginx
192.168.239.1 - - [10/Jul/2016:16:53:33 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36" "-"
2016/07/10 16:53:33 [error] 5#5: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.239.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.239.130", referrer: "http://192.168.239.130/"
192.168.239.1 - - [10/Jul/2016:16:53:33 +0000] "GET /favicon.ico HTTP/1.1" 404 571 "http://192.168.239.130/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36" "-"
192.168.239.1 - - [10/Jul/2016:16:53:59 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36" "-"
...

查看容器mynginx從2016年7月1日後的最新10條日誌。

docker logs --since="2016-07-01" --tail=10 mynginx

 

14、docker wait:阻塞運行直到容器停止,然後列印出它的退出代碼。

語法:docker wait [OPTIONS] CONTAINER [CONTAINER...]

實例:

docker wait CONTAINER

 

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

語法:docker export [OPTIONS] CONTAINER

OPTIONS說明:

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

實例:

將id為a404c6c174a2的容器按日期保存為tar文件。

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker export -o mysql-`date +%Y%m%d`.tar a404c6c174a2
[root@iz2ze2bn5x2wqxdeq65wlpz ~]# ls mysql-`date +%Y%m%d`.tar
mysql-20160711.tar

 

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

語法:docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]

實例:

查看容器mynginx的埠映射情況。

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker port mymysql
3306/tcp -> 0.0.0.0:3306

 

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

語法:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

OPTIONS說明:

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

實例:

將容器a404c6c174a2 保存為新的鏡像,並添加提交人信息和說明信息。

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker commit -a "myimages.com" -m "my apache" a404c6c174a2  mymysql:v1 
sha256:37af1236adef1544e8886be23010b66577647a40bc02c0885a6600b33ee28057
[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker images mymysql:v1
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mymysql             v1                  37af1236adef        15 seconds ago      329 MB

 

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

語法:

        docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-

        docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

OPTIONS說明:

-L :保持源目標中的鏈接

實例:

將主機/www/myimages目錄拷貝到容器96f7f14e99ab的/www目錄下。

docker cp /www/myimages 96f7f14e99ab:/www/

將主機/www/myimages目錄拷貝到容器96f7f14e99ab中,目錄重命名為www。

docker cp /www/myimages 96f7f14e99ab:/www

將容器96f7f14e99ab的/www目錄拷貝到主機的/tmp目錄中。

docker cp  96f7f14e99ab:/www /tmp/

 

19、docker diff:檢查容器里文件結構的更改。

語法:docker diff [OPTIONS] CONTAINER

實例:

查看容器mymysql的文件結構更改。

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker diff mymysql
A /logs
A /mysql_data
C /run
C /run/mysqld
A /run/mysqld/mysqld.pid
A /run/mysqld/mysqld.sock
C /tmp

 

20、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

 

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

語法:docker pull [OPTIONS] NAME[:TAG|@DIGEST]

OPTIONS說明:

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

實例:

從Docker Hub下載java最新版鏡像。

docker pull java

從Docker Hub下載REPOSITORY為java的所有鏡像。

docker pull -a java

 

22、docker push:將本地的鏡像上傳到鏡像倉庫,要先登陸到鏡像倉庫。

語法:docker push [OPTIONS] NAME[:TAG]

OPTIONS說明:

--disable-content-trust :忽略鏡像的校驗,預設開啟

實例:

上傳本地鏡像myapache:v1到鏡像倉庫中。

docker push myapache:v1

 

語法:docker search [OPTIONS] TERM

OPTIONS說明:

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

實例:

從Docker Hub查找所有鏡像名包含java,並且收藏數大於10的鏡像

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker search -s 10 java
NAME                  DESCRIPTION                           STARS   OFFICIAL   AUTOMATED
java                  Java is a concurrent, class-based...   1037    [OK]       
anapsix/alpine-java   Oracle Java 8 (and 7) with GLIBC ...   115                [OK]
develar/java                                                 46                 [OK]
isuper/java-oracle    This repository contains all java...   38                 [OK]
lwieske/java-8        Oracle Java 8 Container - Full + ...   27                 [OK]
nimmis/java-centos    This is docker images of CentOS 7...   13                 [OK]

 

24、docker images:列出本地鏡像。

語法:docker images [OPTIONS] [REPOSITORY[:TAG]]

 OPTIONS說明:

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

實例:

查看本地鏡像列表。

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
mymysql                 v1                  37af1236adef        5 minutes ago       329 MB
myimages/ubuntu           v4                  1c06aa18edee        2 days ago          142.1 MB
<none>                  <none>              5c6e1090e771        2 days ago          165.9 MB
httpd                   latest              ed38aaffef30        11 days ago         195.1 MB
alpine                  latest              4e38e38c8ce0        2 weeks ago         4.799 MB
mongo                   3.2                 282fd552add6        3 weeks ago         336.1 MB
redis                   latest              4465e4bcad80        3 weeks ago         185.7 MB
php                     5.6-fpm             025041cd3aa5        3 weeks ago         456.3 MB
python                  3.5                 045767ddf24a        3 weeks ago         684.1 MB
...

列出本地鏡像中REPOSITORY為ubuntu的鏡像列表。

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker images  ubuntu
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              14.04               90d5884b1ee0        9 weeks ago         188 MB
ubuntu              15.10               4e3b13c8a266        3 months ago        136.3 MB

 

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

語法:docker rmi [OPTIONS] IMAGE [IMAGE...]

OPTIONS說明:

-f :強制刪除;
--no-prune :不移除該鏡像的過程鏡像,預設移除;

實例:

強制刪除本地鏡像 myimages/ubuntu:v4。

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker rmi -f myimages/ubuntu:v4
Untagged: myimages/ubuntu:v4
Deleted: sha256:1c06aa18edee44230f93a90a7d88139235de12cd4c089d41eed8419b503072be
Deleted: sha256:85feb446e89a28d58ee7d80ea5ce367eebb7cec70f0ec18aa4faa874cbd97c73

 

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

語法:docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

實例:

將鏡像ubuntu:15.10標記為 myimages/ubuntu:v3 鏡像。

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker tag ubuntu:15.10 myimages/ubuntu:v3
[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker images   myimages/ubuntu:v3
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimages/ubuntu       v3                  4e3b13c8a266        3 months ago        136.3 MB

 

27、docker build:用於使用 Dockerfile 創建鏡像。

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

實例:

使用當前目錄的 Dockerfile 創建鏡像,標簽為 mydockers/ubuntu:v1。

docker build -t mydockers/ubuntu:v1 .

使用URL github.com/creack/docker-firefox 的 Dockerfile 創建鏡像。

docker build github.com/creack/docker-firefox

也可以通過 -f Dockerfile 文件的位置:

docker build -f /path/to/a/Dockerfile .

在 Docker 守護進程執行 Dockerfile 中的指令前,首先會對 Dockerfile 進行語法檢查,有語法錯誤時會返回:

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker build -t test/myapp .
Sending build context to Docker daemon 2.048 kB
Error response from daemon: Unknown instruction: RUNCMD

 

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

語法:docker history [OPTIONS] IMAGE

OPTIONS說明:

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

實例:

查看本地鏡像mydockers/ubuntu:v3的創建歷史。

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker history mydockers/ubuntu:v3
IMAGE             CREATED           CREATED BY                                      SIZE      COMMENT
4e3b13c8a266      3 months ago      /bin/sh -c #(nop) CMD ["/bin/bash"]             0 B                 
<missing>         3 months ago      /bin/sh -c sed -i 's/^#\s*\(deb.*universe\)$/   1.863 kB            
<missing>         3 months ago      /bin/sh -c set -xe   && echo '#!/bin/sh' > /u   701 B               
<missing>         3 months ago      /bin/sh -c #(nop) ADD file:43cb048516c6b80f22   136.3 MB

 

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

語法:docker save [OPTIONS] IMAGE [IMAGE...]

OPTIONS 說明:

-o :輸出到的文件。

實例:

將鏡像 mydockers/ubuntu:v3 生成 my_ubuntu_v3.tar 文檔

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker save -o my_ubuntu_v3.tar mydockers/ubuntu:v3
[root@iz2ze2bn5x2wqxdeq65wlpz ~]# ll my_ubuntu_v3.tar
-rw------- 1 mydockers mydockers 142102016 Jul 11 01:37 my_ubuntu_v3.ta

 

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

語法:docker load [OPTIONS]

OPTIONS 說明:

-i :指定導出的文件。
-q :精簡輸出信息。

實例:

導入鏡像。

docker load -i ubuntu.tar
docker load < ubuntu.tar

 

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

 語法:docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

OPTIONS說明:

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

實例:

從鏡像歸檔文件my_ubuntu_v3.tar創建鏡像,命名為steven/ubuntu:v4

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker import  my_ubuntu_v3.tar steven/ubuntu:v4  
sha256:63ce4a6d6bc3fabb95dbd6c561404a309b7bdfc4e21c1d59fe9fe4299cbfea39
[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker images steven/ubuntu:v4
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
steven/ubuntu       v4                  63ce4a6d6bc3        20 seconds ago      142.1 MB

 

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

語法:docker info [OPTIONS]

實例:

查看docker系統信息。

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker info
Containers: 12
Images: 41
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 66
 Dirperm1 Supported: false
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.13.0-32-generic
Operating System: Ubuntu 14.04.1 LTS
CPUs: 1
Total Memory: 1.954 GiB
Name: iZ23mtq8bs1Z
ID: M5N4:K6WN:PUNC:73ZN:AONJ:AUHL:KSYH:2JPI:CH3K:O4MK:6OCX:5OYW

 

33、docker version:顯示 Docker 版本信息。

語法:docker version [OPTIONS]

OPTIONS說明:

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

實例:

顯示 Docker 版本信息。

[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker version
Client:
 Version:      1.8.2
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   0a8c2e3
 Built:        Thu Sep 10 19:19:00 UTC 2015
 OS/Arch:      linux/amd64

Server:
 Version:      1.8.2
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   0a8c2e3
 Built:        Thu Sep 10 19:19:00 UTC 2015
 OS/Arch:      linux/amd64

 

34、docker prune:用來刪除不再使用的 docker 對象

鏈接:命令 docker rm | docker rmi | docker prune 的差異

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 相容posix 介面的文件系統中我們不僅要測試 posix 介面是否相容。隨機讀,隨機寫,順序讀,順序寫等讀寫模式下的性能。我們還要測試在不同工作負載條件下的文件系統的性能的情況;Filebench 是一款文件系統性能的自動化測試工具,它通過快速模擬真實應用伺服器的負載來測試文件系統的性能。它不僅可 ...
  • 修改IP 查看進程 lsof -i:埠 殺掉 kill -9 pid 永久關閉防火牆 systemctl stop firewalld.service 查看空間大小 df -h 編輯文件 首先我們使用命令 vi filename 打開一個文件,這個時候進入到的是命令模式 接下來我們按i,然後鍵盤隨 ...
  • 一、查看磁碟分區使用狀況 df [選項] 其中,-l是預設選項 -a 會顯示出包括0位元組分區在內的所有文件系統分區 -t 後須跟一個參數,這個參數為文件系統的名字,用來在系統中查找屬於該文件系統的分區 -x 後也須文件系統名作為參數,需要註意的是,若和其他參數混合使用,x需要出現在最後,例如 二、統 ...
  • Ubuntu筆記 Ubuntu使用過程中整理的一些常用或關鍵操作整理,以備不時之需, 另外自己可以對界面做一些美化,這部分自行百度去配置,我的界面如圖 import tensorflow as tf hello = tf.constant('Hello, TensorFlow!') sess = t ...
  • NetEm (already enabled in the Linux kernel) provides Network Emulation functionality for testing protocols by emulating the properties of wide area ne ...
  • 在 使用 apt 進行安裝軟體的時候,我們要經常判斷,軟體安裝了什麼和安裝到什麼地方。這時候 我們要使用 dpkg -L 命令來進行查看; 同樣 在 fedora 上可以使用 rpm -ql iperf 來進行查看。 保持更新,資源來源自 cnblogs.com/xuyaowen; ...
  • 出現問題場景: 作為剛接觸FreeRTOS實時操作系統的菜鳥,我在練習一個程式功能:按鍵3按下,將LED閃爍的任務掛起;按鍵4按下,將LED閃爍的任務恢復到就緒。按鍵使用外部中斷。恢復就緒的語句是 xTaskResumeFromISR(xHandleTaskLED1(該函數用於在中斷中恢復一個被掛起 ...
  • 在分散式文件系統開發和測試過程中,我們經常需要測試真實的網路帶寬,來進行估測分散式系統的傳輸性能,所以我們要對現有的網路進行測試;Iperf 是一個網路性能測試工具。IPerf可以測試最大的TCP和UDP帶寬性能。Iperf具有多種參數和特性,可以根據需要調整。IPerf可以報告帶寬。延遲抖動和數據 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...