Docker 常用命令

不经常使用 Docker 命令,常用的命令很容易忘记,收集了一些常用的 Docker 命令,以备不时之需。

容器(container)

运行
运行一个新的容器时需要本地有相应的镜像image,没有时会自动下载相应的镜像,如果仅仅使用docker run 只是运行容器,加上-t -i参数能进入容器

1
2
$ docker run -t -i ubuntu:14.04.3
[email protected]:/#

退出容器使用exit即可。

直接执行容器内的命令
在运行容器时不需要加参数,加上容器内的命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ docker run ubuntu:14.04.3 ls
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var

启动和停止

使用docker run只是新建了一个容器,容器并未运行,启动容器先查看容器docker ps -a,不加-a参数是查看运行中的容器,拿到容器 ID 或容器名

启动容器:

1
2
3
4
5
6
$docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bad2f365a3e4 ubuntu:14.04.3 "/bin/bash" 6 seconds ago Exited (0) 5 seconds ago gloomy_jones

$docker start bad2f365a3e4
bad2f365a3e4

停止容器:

1
2
$docker stop bad2f365a3e4
bad2f365a3e4

删除容器:

使用docker rm container id/name ,运行中的容器可加-f参数强制删除。

复制文件

从 container 到 主机(host)

1
$docker cp <containerId>:/file/path/within/container /host/path/target

从 主机(host) 到 container

获取 CONTAINER ID/NAMES

1
2
3
$docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d53d2e0c0436 07c "/bin/bash" 23 seconds ago Up 2 seconds naughty_gates

根据 CONTAINER ID/NAMES 获取完整 CONTAINER ID

1
2
$docker inspect -f '{{.Id}}' naughty_gates
d53d2e0c0436d6295426aefb06b9d7221bcba1def6e4310ab87bea88082b3b2f

or

1
2
$docker inspect -f '{{.Id}}' d53d2e0c0436
d53d2e0c0436d6295426aefb06b9d7221bcba1def6e4310ab87bea88082b3b2f

复制文件到 CONTAINER

1
$sudo cp file.txt /var/lib/docker/aufs/mnt/d53d2e0c0436d6295426aefb06b9d7221bcba1def6e4310ab87bea88082b3b2f/root/file.txt

(完)