Docker 基本命令

镜像

搜索

1
docker search [OPTIONS] TERM

获取

1
docker pull [OPTIONS] NAME[:TAG|@DIGEST]

运行

1
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

常用OPTIONS:
|option|描述|
|—|—|
|-i -t|两个参数,-i 交互式操作,-t终端|
|-p|指定端口|
|-d|在后台运行容器并打印容器ID|
|--name|为容器指定名称|
|--rm|退出容器后将其删除|

挂载数据卷:

1
docker run -d -P --name web --mount source=my-vol,target=/webapp webapp python app.py

挂载主机目录:

1
docker run -d -P --name web --mount type=bind,source=/src/webapp,target=/opt/webapp,readonly webapp python app.py

列出已下载镜像

1
docker image ls [OPTIONS] [REPOSITORY[:TAG]]

删除本地镜像

1
docker image rm [OPTIONS] IMAGE [IMAGE...]

列出虚悬镜像

由于同名镜像更新产生

1
docker image ls -f dangling=true

删除虚悬镜像

1
docker image prune

占用磁盘空间

1
docker system df [OPTIONS]

查看历史

1
docker history [OPTIONS] IMAGE

推送镜像

1
docker push [OPTIONS] NAME[:TAG]

容器

启动已终止容器

1
docker container start [OPTIONS] CONTAINER [CONTAINER...]

查看日志

1
docker container logs [OPTIONS] CONTAINER

终止容器

1
docker container stop [OPTIONS] CONTAINER [CONTAINER...]

重启容器

1
docker container restart [OPTIONS] CONTAINER [CONTAINER...]

删除容器

1
docker container rm [OPTIONS] CONTAINER [CONTAINER...]

清理所有终止状态容器

1
docker container prune [OPTIONS]

进入容器

exec 命令 (推荐)

从这个 stdin 中 exit 不会导致容器停止

1
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

常用OPTIONS:
|option|描述|
|—|—|
|-i -t|两个参数,-i 交互式操作,-t终端|
|-w|容器的工作目录|
|-e|设置 ENV|

attach 命令

注意: 如果从这个 stdin 中 exit,会导致容器停止

1
docker attach [OPTIONS] CONTAINER

查看存储层变化

1
docker diff CONTAINER

提交变更

1
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

eg:

1
docker commit --author "mail@shianqi.com" --message "Change index.html" webserver nginx:v2

常用于学习,还可以在被入侵后保存现场。不要使用 docker commit 定制镜像,应该用 Dockerfile

容器和本机文件传输

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-

导入导出

导出容器快照

1
docker export [OPTIONS] CONTAINER

eg:

1
docker export 329a2e380 > ubuntu.tar

导入容器

docker import

导入容器快照

1
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

eg: 导入容器快照

1
cat ubuntu.tar | docker import - test/ubuntu:v1.0

eg: 指定url或目录导入

1
docker import http://shianqi.com/exampleimage.tgz shianqi/imagerepo

docker load

导入镜像存储文件

1
docker load [OPTIONS]

区别: 导入容器快照将丢弃所有的历史记录和元数据信息,导入镜像存储文件将保存完整记录,体积也要大。从容器快照文件中导入可以重新指定标签等信息。

数据卷

创建

1
docker volume create [OPTIONS] [VOLUME]

查看

查看所有:

1
docker volume ls [OPTIONS]

查看指定:

1
docker volume inspect [OPTIONS] VOLUME [VOLUME...]

删除

1
docker volume rm [OPTIONS] VOLUME [VOLUME...]

清理无用数据卷

1
docker volume prune [OPTIONS]

容器互联

推荐使用自定义 Docker 网络来链接多个容器,而不是使用 --link 参数

新建网络

1
docker network create [OPTIONS] NETWORK

eg:

1
docker network create -d bridge my-net