一.前言
一个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