一.前言
一個image是一些Docker層(layer)的集合。當我們運行一個image的時候,一個對應於這個image的container就產生了。同一個image可能對應許多正在運行的container。
二.相關指令
1.鏡像相關指令
(1).查看所有鏡像
docker image ls
(2).刪除鏡像
docker rmi [鏡像ID(前四位)或者鏡像名]
(3).刪除所有鏡像
docker rmi $(docker images -q)
2.容器相關指令
(1).刪除容器
docker rm [容器ID或者容器名]
如果正在運行的話,需要先停止容器再刪除
docker stop [容器ID或者容器名]
(2).查看所有容器(包括未運行的)
docker ps -a
查看正在運行的容器
docker ps
詳細: docker ps [OPTIONS]
- -a :顯示所有的容器,包括未運行的。
- -f :根據條件過濾顯示的內容。
- –format :指定返回值的模板文件。
- -l :顯示最近創建的容器。
- -n :列出最近創建的n個容器。
- –no-trunc :不截斷輸出。
- -q :靜默模式,只顯示容器編號。
- -s :顯示總的文件大小。
(3).殺死所有正在運行的容器
docker kill $(docker ps -a -q)
(4).刪除所有已經停止的容器
docker rm $(docker ps -a -q)
(5)查看docker容器的詳細信息
docker inspect [OPTIONS] NAME|ID [NAME|ID…]
OPTIONS說明:
-f :指定返回值的模板文件。
-s :顯示總的文件大小。
–type :爲指定類型返回JSON。
例如:
runoob@runoob:~$ docker inspect mysql:5.6
(6).查看容器log
docker logs [容器ID]或容器名稱
三.相關操作
1.查看docker所有container
命令: docker ps -a
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bb44abc35285 hello-world "/hello" 19 hours ago Exited (0) 19 hours ago recursing_franklin
2.查看正在運行的container
docker ps -q
3.刪除鏡像iamge與容器Container
1.查詢所有鏡像
REPOSITORY TAG IMAGE ID CREATED SIZE
lss0555/dockerfile-entrypoint-shell latest a55bfbb112d3 18 minutes ago 88.1MB
lss0555/dockerfile-cmd-shell latest c6ec8dccc991 2 hours ago 88.1MB
java-test latest f786e00bec5d 26 hours ago 643MB
lss0555/java-hello latest f786e00bec5d 26 hours ago 643MB
test/java-hello latest f786e00bec5d 26 hours ago 643MB
mysql latest 81f094a7e4cc 13 days ago 477MB
ubuntu latest 47b19964fb50 13 days ago 88.1MB
java 8 d23bdf5b1b1b 2 years ago 643MB
2.刪除鏡像lss0555/dockerfile-cmd-shell
刪除指令: docker rmi [鏡像]
[root@localhost docker_file]# docker rmi c6ec8dccc991
Error response from daemon: conflict: unable to remove repository reference "lss0555/dockerfile-cmd-shell" (must force) - container a7d471135d46 is using its referenced image c6ec8dccc991
此時提示該鏡像有正在運行的容器,這時候查看正在運行的容器
3.查看所有容器(包括未運行)
指令: docker ps -a
[root@localhost docker_file]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a7d471135d46 lss0555/dockerfile-cmd-shell "/bin/sh -c 'echo \"h…" 2 minutes ago Exited (0) 2 minutes ago zen_greider
刪除該容器: docker rm a7d4
[root@localhost docker_file]# docker rm a7d4
a7d4
刪除後再次查看所有容器
[root@localhost docker_file]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
發現以不存在該容器,此時再次刪除鏡像
[root@localhost docker_file]# docker rmi c6ec8dccc991
Untagged: lss0555/dockerfile-cmd-shell:latest
Deleted: sha256:c6ec8dccc9910b3346fbaec8e55e7577e308281c9469f744b8e677a51df2eb9e
再次查看當前所有鏡像
[root@localhost docker_file]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
lss0555/dockerfile-entrypoint-shell latest a55bfbb112d3 30 minutes ago 88.1MB
java-test latest f786e00bec5d 26 hours ago 643MB
lss0555/java-hello latest f786e00bec5d 26 hours ago 643MB
test/java-hello latest f786e00bec5d 26 hours ago 643MB
mysql latest 81f094a7e4cc 13 days ago 477MB
ubuntu latest 47b19964fb50 2 weeks ago 88.1MB
java 8 d23bdf5b1b1b 2 years ago 643MB
此時該鏡像已成功刪除
4. exec 命令操作
1.進入查看容器
docker exec -it lss0555/java-hello /bin/sh 或者 docker exec -it d48b21a7e439(容器id) /bin/sh
2.查看運行容器的ip地址
docker exec -it lss0555/java-hello ip a
/bin/sh 是固定寫法,它也能進入這個容器
四.鏡像iamge資源
Docker 資源彙總
Docker Hub: https://hub.docker.com/
Docker 國內鏡像
網易加速器:http://hub-mirror.c.163.com
官方中國加速器:https://registry.docker-cn.com
ustc的鏡像:https://docker.mirrors.ustc.edu.cn
daocloud:https://www.daocloud.io/mirror#accelerator-doc(註冊後使用)
五.操作鏡像
1.拉取鏡像
如拉取鏡像ubuntu
docker pull ubuntu
拉取指定版本鏡像:
docker pull ubuntu:16.04
[root@localhost ~]# docker pull ubuntu:16.04
16.04: Pulling from library/ubuntu
7b722c1070cd: Pull complete
5fbf74db61f1: Pull complete
ed41cb72e5c9: Pull complete
7ea47a67709e: Pull complete
Digest: sha256:e4a134999bea4abb4a27bc437e6118fdddfb172e1b9d683129b74d254af51675
Status: Downloaded newer image for ubuntu:16.04
2.運行鏡像ubuntu
運行指令:
docker run ubuntu
查看所有運行容器: docker container ls -a
[root@localhost ~]# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1f4c6c68d56d ubuntu "/bin/bash" 27 seconds ago Exited (0) 26 seconds ago unruffled_goldstine
8f5fd5979df9 ubuntu "/bin/bash" 53 seconds ago Exited (0) 51 seconds ago heuristic_williams
bb44abc35285 fce289e99eb9 "/hello" 47 hours ago Exited (0) 47 hours ago recursing_franklin