Docker image相关命令
docker images
检查已经下载的docker镜像。
docker image rm IMAGE_NAME
删除指定的docker镜像
docker pull
用于下载对应的docker image,比如:
docker pull redisdocker 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 prunedocker search
搜索一个Docker镜像,例如:
docker search redis也可以限定返回的记录数:
docker search redis --limit 10Docker container相关命令
docker attach
重新和容器的交互式终端关联,如果键入exit,会导致容器停止。
docker attach CONTAINER_ID/CONTAINER_NAMEdocker 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_IDdocker logs CONTAINER_ID
查看容器日志
也可以使用:
docker logs CONTAINER_NAMEdocker ps
查看所有运行的容器
docker ps查看所有容器(包括已经运行结束的容器)的详细信息
docker ps -a查看最近使用的n个容器
docker ps -a -n5只查看容器编号
docker ps -a -q查看最近使用的容器
docker ps -ldocker 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/bashdocker 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 rmdocker start CONTAINER_ID
重新启动一个容器。
docker stop CONTAINER_ID
停止指定容器。
docker top
查看容器内的进程:
docker top CONTAINER_ID退出容器的交互模式
这里指的是以交互式方式进入容器内部(Shell)时如何退出。比如在运行如下命令之后:
docker run -it redisexit
通过这种方式会退出容器
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.txtdocker 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