可使用命令docker container ls
查看容器信息,默認狀況下只能查看到當前處於啓動狀態的容器。若是須要查看全部容器信息,須要使用-a參數,如:docker container ls -a
。
還可使用命令docker inspect
能夠查看指定容器的詳細信息:docker inspect <container id>
。nginx
啓動容器有兩種方式,一種是基於鏡像新建一個容器並啓動,另一個是將在終止狀態(Exited)的容器從新啓動。web
1.基於鏡像新建並啓動容器docker
命令:docker run
例如:shell
$ docker run -it ubuntu:16.04 /bin/bash Unable to find image 'ubuntu:16.04' locally 16.04: Pulling from library/ubuntu 7e6591854262: Pulling fs layer 089d60cb4e0a: Pulling fs layer 9c461696bc09: Download complete 45085432511a: Waiting 16.04: Pulling from library/ubuntu 7e6591854262: Pull complete 089d60cb4e0a: Pull complete 9c461696bc09: Pull complete 45085432511a: Pull complete Digest: sha256:6aa6090ee9c1a525cbad1bb6c2ec9278914db754a3a3c5dc9e7d8daa5ee40dce Status: Downloaded newer image for ubuntu:16.04 root@c421520d8484:/#
上述操做從一個標籤爲16.04的ubuntu鏡像新建並啓動了一個容器實例,同時在容器中啓動了一個bash終端。ubuntu
當利用docker run
來建立容器時,Docker在後臺運行的標準操做包括:tomcat
2.啓動已終止容器bash
能夠利用docker container start
命令,直接將一個已經終止的容器啓動運行。tcp
命令:docker container start
例如:spa
$ docker start c421520d8484 c421520d8484
上述操做啓動了一個id爲c421520d8484的已經中止的容器。3d
可使用docker container stop
來終止一個運行中的容器。
$ docker stop c421520d8484 c421520d8484
此外,當Docker容器中指定的應用終結時,容器也自動終止。例如對於只啓動了一個終端的容器,用戶經過exit命令或Ctrl+D來退出終端時,所建立的容器馬上終止。
使用docker container restart
命令會將一個運行態的容器終止,而後再從新啓動它。
更多的時候,須要讓Docker在後臺運行而不是直接把執行命令的結果輸出在當前宿主機下。此時,能夠經過添加-d參數來實現。
$ docker run -d ubuntu:16.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
注: 容器是否會長久運行,是和docker run
指定的命令有關,和-d參數無關。
須要區分容器"在後臺運行"和"長久運行"這2個概念的區別:
要獲取容器的輸出信息,能夠經過docker container logs
命令。
如:
$ docker container logs c421520d8484
或者
$ docker container logs -f c421520d8484
在使用-d參數時,容器啓動後會進入後臺。某些時候須要進入容器進行操做,須要使用docker attach
命令或docker exec
命令,推薦使用docker exec
命令。
緣由:使用attach命令進入容器,退出時會致使容器終止;而使用exec命令進入容器,退出時不會致使容器終止。
# 使用attach命令進入容器,退出時會致使容器終止 $ docker attach <container id> # 使用exec命令進入容器,退出時不會致使容器終止 $ docker exec -it <container id> bash
1.可使用docker export
命令導出容器快照到本地文件,格式: docker export [選項] CONTAINER
$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a386ed46adbe ubuntu:16.04 "/bin/bash" 8 minutes ago Up 8 minutes tender_joliot d4ba59c159a3 nginx:v3 "nginx -g 'daemon of…" 5 hours ago Up 5 hours 0.0.0.0:82->80/tcp web3 afb890786e0d nginx:v2 "nginx -g 'daemon of…" 6 hours ago Up 6 hours 0.0.0.0:81->80/tcp web2 7849b575df3d nginx "nginx -g 'daemon of…" 6 hours ago Up 6 hours 0.0.0.0:80->80/tcp webserver # 導出容器快照爲本地文件 $ docker export a386ed46adbe > ubuntu.tar
2.可使用docker import
從容器快照文件中再導入爲鏡像,格式:docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
$ cat ubuntu.tar | docker import - test/ubuntu:v1.0 sha256:e1d815eee91a11506af4239bde3305e5bcca9f5b9ce0c8eddd7d4e2f2bf80f17 $ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE test/ubuntu v1.0 e1d815eee91a 28 seconds ago 85.9MB nginx v3 f8411fc0b25c 5 hours ago 109MB nginx v2 87e23809f4d8 6 hours ago 109MB nginx latest ae513a47849c 2 days ago 109MB ubuntu 16.04 0b1edfbffd27 5 days ago 113MB tomcat latest 33e02377a00f 3 weeks ago 554MB hello-world latest e38bc07ac18e 3 weeks ago 1.85kB
此外,也能夠經過指定URL或者某個目錄來導入,如:
$ docker import http://example.com/exampleimage.tgz example/imagerepo
注:
用戶既可使用docker load
來導入鏡像存儲文件到本地鏡像庫,也可使用docker import
來導入一個容器快照到本地鏡像庫。
這二者的區別在於容器快照文件將丟棄全部的歷史記錄和元數據信息(即僅保存容器當時的快照狀態),而鏡像存儲文件將保存完整記錄,體積也要大。此外,從容器快照文件導入時能夠從新指定標籤等元數據信息。
1.可使用docker container rm
來刪除一個處於終止狀態的容器,如:
$ docker container rm 25af9f20d6a2
2.若是要刪除一個運行中的容器,能夠添加-f參數。Docker會發送SIGKILL信號給容器。
$ docker container rm -f d4ba59c159a3
3.使用命令docker container prune
清理掉全部處於終止狀態的容器。
$ docker container prune WARNING! This will remove all stopped containers. Are you sure you want to continue? [y/N] y Deleted Containers: 04c3079ec43a68e80dbf602935d17c75062e36ede0fadad1e8022d37b93bb97d a48335a0bbf1afd1d6ae81bf6028852a0e57f2c48fdfa86b0ede343195ec97d6 3a9ff5d11acddddccfc4f23447eb4a731d3ae22b605f48ac7f3c4bfba789cb72 c8b00c9a2beb30934c6747bb32ae5d610eb00e630c6ef993de18cc54b646b35c 97b7f9d496edc2087001b47b6959a39c772c10ed72fedcb6bea0e22404a11e0d 73a8fd203031a15ae1db17cd8e816dc0859535f93010f4848961e76ba7471252 ae723bca424cd694cc9f8a1ebd7f958dd7b674c55922a9e84fe36f9e2c6e8b49 ffb07022d5f8f993fa42b33ae6ea7b5ae199f68ea41c6c0739be367cea376beb Total reclaimed space: 76.96kB