Docker image相关命令
docker images
检查已经下载的docker镜像。
docker image rm IMAGE_NAME
删除指定的docker镜像
docker pull
用于下载对应的docker image,比如:
docker pull redis
docker rmi
删除一个镜像
docker rmi IMAGE_ID
删除多个镜像
docker rmi IMAGE_ID_1 IMAGE_ID_2 IMAGE_ID_3
删除所有镜像
docker rmi ${docker images -qa}
在Docker中有一种既没有名字,也没有标签(版本)的镜像,叫做dangling image,这种镜像通常是Docker在运行时自动创建的,一般都可以进行删除。
docker image prune
docker search
搜索一个Docker镜像,例如:
docker search redis
也可以限定返回的记录数:
docker search redis --limit 10
Docker container相关命令
docker attach
重新和容器的交互式终端关联,如果键入exit,会导致容器停止。
docker attach CONTAINER_ID/CONTAINER_NAME
docker exec
通过交互模式进入容器内shell,进入后如果键入exit,不会导致容器停止
docker exec -it CONTAINER_ID/CONTAINER_NAME /bin/bash
注意,有些镜像中没有安装bash,这时可以尝试sh:
docker exec -it CONTAINER_ID/CONTAINER_NAME /bin/sh
注意,在Mac中输入exit可能无法返回host。这时可以键入Cmd+A+K
docker inspect
查看某个容器的详细信息:
docker inspect CONTAINER_ID
docker logs CONTAINER_ID
查看容器日志
也可以使用:
docker logs CONTAINER_NAME
docker ps
查看所有运行的容器
docker ps
查看所有容器(包括已经运行结束的容器)的详细信息
docker ps -a
查看最近使用的n个容器
docker ps -a -n5
只查看容器编号
docker ps -a -q
查看最近使用的容器
docker ps -l
docker run
注意事项
当运行一个Docker容器时,默认情况下,容器运行结束后会自动退出。比如,当运行Hello-world,ubuntu时都会自动退出。如果不想让容器自动退出,可以运行一个前台进程,比如:redis等。或者以交互模式运行(在前台运行bash等)
从Docker镜像启动一个Docker容器
docker run redis
指定镜像版本号
也可以在运行时指定redis的版本号,默认情况下使用最新的版本(latest):
docker run redis:7.0
以后台方式运行
以后台方式运行则需要添加-d:
docker run -d redis
指定容器名称
docker run -d --name my-redis redis
其实,docker run = docker pull + docker start
但两者也有区别,对于docker stop之后的容器,其id及配置参数仍被保留,因此之后可以通过docker start重新启动已经停止的容器。
端口的绑定
通过上面的命令(docker run redis),尽管Redis在容器中运行,但从host无法访问Redis,原因在于只声明了Redis的运行端口,但该端口并未与host的端口绑定。如果要实现端口的绑定:
docker run -p6379:6379 redis
需要注意,第一个是host端口,第二个是容器端口。
以交互式模式启动容器
docker run -it ubuntu /bin/bash
docker rm
删除一个container
这种方式只能删除已经停止的容器
docker rm CONTAINER_ID / CONTAINER_NAME
强制删除一个容器
这样即使容器正在运行,也会被删除
docker rm -f CONTAINER_ID / CONTAINER_NAME
同时删除所有容器
docker rm ${docker ps -a -q}
或者
docker ps -a -q | xargs docker rm
docker start CONTAINER_ID
重新启动一个容器。
docker stop CONTAINER_ID
停止指定容器。
docker top
查看容器内的进程:
docker top CONTAINER_ID
退出容器的交互模式
这里指的是以交互式方式进入容器内部(Shell)时如何退出。比如在运行如下命令之后:
docker run -it redis
exit
通过这种方式会退出容器
Ctrl + p + q
退出交互模式,容器仍在运行
Docker network相关命令
查看Docker网络
docker network ls
创建Docker网络
docker network create NETWORK_NAME
其他类命令
显示Docker磁盘空间使用情况
docker system df
其输出结果类似:
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 3 2 945.6MB 116.8MB (12%)
Containers 2 0 55B 55B (100%)
Local Volumes 14 2 675.5MB 358.5MB (53%)
Build Cache 0 0 0B 0B
统计Docker容器资源使用
docker stats
主机和容器互通
docker cp
docker cp命令可以将文件从host复制到容器中。
docker cp file.txt container-name:/path/to/copy/file.txt
docker export导出容器
将整个容器导出到一个tar文件:
docker export CONTAIN_ID > my_container.tar
导入到容器
cat my_container.tar | docker import lcoding/redis:6.0
这时再查看docker镜像,就会看到新创建的lcoding/redis:6.0:
docker images
docker run -it lcoding/redis:6.0 /bin/bash