Docker子命令汇总与解析
Docker子命令分类
子命令分类 | 子命令 |
---|---|
Docker环境信息 | info、version |
容器生命周期管理 | create、exec、kill、pause、restart、rm、run、start、stop、unpause |
镜像仓库命令 | login、logout、pull、push、search |
镜像管理 | build、images、import、load、rmi、save、tag、commit |
容器运维操作 | attach、export、inspect、port、ps、rename、stats、top、wait、cp、diff |
系统日志信息 | events、history、logs |
docker安装
sudo apt-get install docker.io
- 1
查看命令清单
sudo docker
docker help
- 1
- 2
Docker环境信息
info
docker info:提供配置信息,对于报bug非常有用。
$ sudo docker info
Containers: 0
Images: 0
Storage Driver: overlay
Backing Filesystem: extfs
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 4.4.0-2-deepin-amd64
Operating System: Deepin 15 (containerized)
CPUs: 4
Total Memory: 3.792 GiB
Name: pxe1124amd64cn-pc
ID: G3XG:UIIT:IIP5:GMXQ:NYKR:ZHOF:AYEY:LCJR:2DNL:ZS2A:DDLM:ZPRF
WARNING: No memory limit support
WARNING: No swap limit support
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
version
docker version:显示Docker的版本号,API版本号,Git commit, Docker客户端和后台进程的Go版本号。
$ sudo docker version
Client:
Version: 1.8.3
API version: 1.20
Go version: go1.5.1
Git commit: f4bf5c7
Built:
OS/Arch: linux/amd64
Server:
Version: 1.8.3
API version: 1.20
Go version: go1.5.1
Git commit: f4bf5c7
Built:
OS/Arch: linux/amd64
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
容器生命周期管理
create
create : Create a new container
exec
exec: Run a command in a running container
kill
kill: Kill a running container
使用方法:docker kill [OPTIONS] CONTAINER [CONTAINER…]
使用说明:杀掉容器的进程。
pause/unpause
pause: Pause all processes within a container
unpause: Unpause all processes within a container
使用方法:docker pause CONTAINER
使用说明:使用cgroup的freezer顺序暂停、恢复容器里的所有进程。
rm
rm: Remove one or more containers
使用方法:docker rm [OPTIONS] CONTAINER [CONTAINER…]
使用说明:删除指定的容器。
run
run: Run a command in a new container
使用方法:docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
使用说明:这个命令是核心命令,可以配置的参数多达28个参数。详细的解释可以通过docker run –help列出。官方文档中提到的 Issue 2702:”lxc-start: Permission denied - failed to mount” could indicate a permissions problem with AppArmor. 在最新版本的Dcoker中已经解决。
实例1:基于ubuntu镜像创建一个容器并执行echo命令。
$ sudo docker run ubuntu echo "hello world"
hello world
- 1
- 2
实例2:基于Ubuntu镜像创建一个名为test的容器,并为它分配一个伪终端执行/bin/bash命令,用户可以在该伪终端与容器进行交互。
$ sudo docker run -i -t --name test ubuntu /bin/bash
root@672f99f6998d:/# df -h
- 1
- 2
- 3
start/stop/restart
start :Start one or more stopped containers
stop :Stop a running container
restart :Restart a running container
使用方法:docker start CONTAINER [CONTAINER…]
使用说明:这组命令可以开启(两个:start, restart),停止(一个:stop)一个容器。
镜像仓库命令
login
login: Register or log in to a Docker registry
使用方法:docker login [OPTIONS] [SERVER]
使用说明:登录Hub服务。
logout
logout: Log out from a Docker registry
pull/push
pull : Pull an image or a repository from a registry
push : Push an image or a repository to a registry
使用方法:docker push NAME[:TAG]
使用说明:通过此命令分享Image到Hub服务或者自服务的Registry服务。
实例:
#从官方Hub拉取ubuntu:lastest镜像
$sudo docker pull ubuntu
#从官方Hub拉取指明“ubuntu 12.04”tag的镜像
$sudo docker pull ubuntu:ubuntu12.04
#从特定仓库拉取ubuntu:lastest镜像
$sudo docker pull SEL/ubuntu
#从其他服务器拉取镜像
$sudo docker pull 10.0.1.103:5000/sshd
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
search
search: Search the Docker Hub for images
使用方法:docker search TERM
使用说明:通过关键字搜索分享的Image。
镜像管理
build
build: Build an image from a Dockerfile
使用方法:docker build [OPTIONS] PATH | URL | -
使用说明:这个命令是从源码构建新Image的命令。
images
images: List images
使用方法:docker images [OPTIONS] [NAME]
使用说明:Docker Image是多层结构的,默认只显示最顶层的Image。不显示的中间层默认是为了增加可复用性、减少磁盘使用空间,加快build构建的速度的功能,一般用户不需要关心这个细节。
import/save/load
import: Import the contents from a tarball to create a filesystem image
save: Save an image(s) to a tar archive
load: Load an image from a tar archive or STDIN
使用方法:
docker import URL|- [REPOSITORY[:TAG]]
docker save IMAGE
docker load
使用说明:这一组命令是系统运维里非常关键的命令。加载(两种方法: import, load),导出(一种方法: save)容器系统文件。
rmi
rmi: Remove one or more images
使用方法:docker rmi IMAGE [IMAGE…]
使用说明:指定删除Image文件。
tag
tag: Tag an image into a repository
使用方法:docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
使用说明:组合使用用户名,Image名字,标签名来组织管理Image。
commit
commit: Create a new image from a container’s changes
使用方法:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
使用说明:提交保存时,只能选用正在运行的容器(即可以通过docker ps查看到的容器)来制作新的镜像。这个命令的用处在于把有修改的container提交成新的Image,然后导出此Imange分发给其他场景中调试使用。Docker官方的建议是,当你在调试完Image的问题后,应该写一个新的Dockerfile文件来维护此Image。commit命令仅是一个临时创建Imange的辅助命令。
容器运维操作
attach
attach : Attach to a running container
使用方法:docker attach [OPTIONS] CONTAINER
使用说明:使用这个命令可以挂载正在后台运行的容器,在开发应用的过程中运用这个命令可以随时观察容器內进程的运行状况。开发者在开发应用的场景中,这个命令是一个非常有用的命令。
export
export : Export a container’s filesystem as a tar archive
使用方法:docker export CONTAINER
使用说明:把容器系统文件打包并导出来,方便分发给其他场景使用。
inspect
inspect: Return low-level information on a container or image
使用方法:docker inspect CONTAINER|IMAGE [CONTAINER|IMAGE…]
使用说明:查看容器运行时详细信息的命令。了解一个Image或者Container的完整构建信息就可以通过这个命令实现。
port
port: List port mappings or a specific mapping for the CONTAINER
使用方法:docker port CONTAINER PRIVATE_PORT
使用说明:打印出Host主机端口与容器暴露出的端口的NAT映射关系
ps
ps: List containers
使用方法:docker ps [OPTIONS]
使用说明:docker ps打印出正在运行的容器。docker ps -a打印出所有运行过的容器;docker ps -l查看最新创建的容器。
rename
rename: Rename a container
stats
stats: Display a live stream of container(s) resource usage statistics
top
top: Display the running processes of a container
使用方法:docker top CONTAINER [ps OPTIONS]
使用说明:显示容器內运行的进程。
wait
wait : Block until a container stops, then print its exit code
使用方法:docker wait CONTAINER [CONTAINER…]
使用说明:阻塞对指定容器的其他调用方法,直到容器停止后退出阻塞。
cp
cp: Copy files/folders from a container to a HOSTDIR or to STDOUT
使用方法:cp CONTAINER:PATH HOSTPATH
使用说明:使用cp可以把容器內的文件复制到Host主机上。这个命令在开发者开发应用的场景下,会需要把运行程序产生的结果复制出来的需求,在这个情况下就可以使用这个cp命令。
diff
diff: Inspect changes on a container’s filesystem
使用方法:docker diff CONTAINER
使用说明:diff会列出3种容器内文件状态变化(A - Add, D - Delete, C - Change )的列表清单。构建Image的过程中需要的调试指令。
系统日志信息
events
events: Get real time events from the server
使用方法:docker events [OPTIONS]
使用说明:打印容器实时的系统事件。
history
history: Show the history of an image
使用方法:docker history [OPTIONS] IMAGE
使用说明:打印指定Image中每一层Image命令行的历史记录。
logs
logs: Fetch the logs of a container
使用方法:docker logs CONTAINER
使用说明:批量打印出容器中进程的运行日志。
上一篇: 数据库SQLite