常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
docker --help
docker-compose --help

# 后台启动当前应用
docker-compose -f docker-compose.yml up -d

# 暂停当前应用
docker-compose -f docker-compose.yml stop
# Stop and remove the deployment(network, containers, and volumes)
docker-compose down -v

# 关闭容器且删除容器、网络、镜像和卷
docker-compose -f docker-compose.yml kill && docker-compose -f docker-compose.yml down

# 在 docker 容器内执行此命令,则可以解决 docker 容器解析不了特定网址的问题
printf "nameserver 127.0.1.1\nsearch nvidia.com" > /etc/resolv.conf

# -it:这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。
# * --rm:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 --rm 可以避免浪费空间。
* ubuntu:14.04:这是指用 ubuntu:14.04 镜像为基础来启动容器。
* bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 bash。
# 这要求容器是是以-d 开始 run 的,或者由 start 再启动的。
docker run -it --rm ubuntu:14.04 bash

# 如何启动死容器
docker ps -a 列出所有容器(无论死活)
# 然后启动一个容器
docker start 34625
# 然后进入这个容器
docker exec -it 34625 /bin/bash
# 进行一番修改,查看当前容器的修改状况
docker diff 34625759feb9
# 提交镜像
$ docker commit \
--author "Tao Wang <twang2218@gmail.com>" \
--message "修改了默认网页" \
webserver \
nginx:v2
sha256:07e33465974800ce65751acc279adc6ed2dc5ed4e0838f8b86f0c87aa1795214
# 如何不用反斜杠换行符来提交镜像
docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1

# 用交互的方式进入一个在后台运行的容器
# 这要求容器是是以-d 开始 run 的,或者由 start 再启动的。
docker exec -it webserver bash

# 用端口映射的方式启动 friendlyhello镜像。
docker run -p 4000:80 friendlyhello

# 提供实名容器启动,用 docker run -d 可以保证无阻塞地后台运行一个 docker 容器,而没有必须要 -it 选项的烦恼
docker run --name web2 -d -p 81:80 nginx:v2

# 在这里,docker 的 t不只是意味着 tag,也意味着名字。
docker build -t friendlyhello .

# 在容器启动以前可以指定它的映射,容器启动以后就不行了(也就是 docker start 不能指定端口映射和物理卷映射)。
docker run -i -p 22 -p 8000:80 -m /data:/data -t <foo/live> /bin/bash

# 关闭容器
# 此外,当Docker容器中指定的应用终结时,容器也自动终止。 用户通过 exit 命令或 Ctrl+d 来退出终端时,所创建的容器立刻终止。
# 处于终止状态的容器,可以通过 docker start 命令来重新启动。
docker stop 容器名

# 命令会将一个运行态的容器终止,然后再重新启动它
docker restart 容器名

# 删除一个处于终止状态的容器
docker rm trusting_newton
# 删除所有的包括还在运行中的容器
docker rm $(docker ps -a -q)

# 从官服拉镜像
docker pull centos
# 从私服拉镜像
docker pull hub.xiaojukeji.com/mfe/nodejs-v6.10.3:latest

# 查看当前容器的端口映射状况
docker port a6f656325a0d

# 删除一个镜像
docker rmi ubuntu


# 可以 strace 的 run 方法。这个方法应该降低了 security confine。
docker run -it --security-opt seccomp:unconfined oom:v0.0.1 /bin/bash

# 增加 strace 能力
docker run -it --security-opt seccomp:unconfined --cap-add=SYS_PTRACE oom:v0.0.1 /bin/bash

# 删除无用的 docker 网络
docker network prune

docker
docker.xmind