docker基操

Docker下载:Docker

Docker仓库:Docker Hub

Docker文档:Docker Docs

常用操作

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
# 搜索镜像
docker search image_name

# 拉取镜像
docker pull image_name:tag

# 查看本地镜像目录
# 可选参数 -a -v
docker images

# 查看所有容器信息
docker ps -a

# 实例化镜像容器
docker run image_name
-p # 27017:27017映射端口号。本地端口 : 容器端口
-d # 后台启动容器
-v $PWD/db:/data/db # 将容器目录挂载到本地,保存容器内数据库数据。$PWD / (本地相对路径) :(容器内路径)
--privileged=true # 允许容器访问主机的所有设备
--name container_name # 容器命名
--restart=always|no # 容器开机自启|关闭

# 修改运行容器开机自启|关闭
docker update --restart=always container_id
docker update --restart=no container_id

# 停止容器运行
docker stop container_name

# 重启容器运行
docker restart container_name

# 杀死容器
docker kill container_name

# 删除容器
docker rm container_name

# 删除镜像
docker rmi image_name:tag

# 将镜像保存到 tar 文件
docker save image_name -o file_name.tar

# 从 tar 文件加载镜像
docker load -i file_name.tar

# 将文件或目录从 docker 主机复制到容器中
# 将 mycode 目录复制到 myapp 容器中的tmp目录下
docker cp mycode myapp:/tmp

# 查看镜像构建历史
docker history image_name

# 从容器中查看日志
# -f 选项查看活动日志
# --tail 10 查看最近10条日志
docker logs container_name

# 查看所有容器的 CPU,内存和网络 I/O 情况
# container_name 查看特定容器情况
# --no-stream 资源使用统计信息,无实时流
docker stats

# 显示容器的运行进程
docker top container_name

# 查看容器 IP 地址
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name

# 通过dockerfile构建一个镜像(.表示当前目录)
# -f 指定某个文件来构建镜像,不指定的话那必须是默认的Dockerfile,名字可以通过-f来更改
# –target 指定阶段构建,对应多阶段构建的场景
docker build -t image_name:tag .

# 在容器中创建Bash对话
docker exec -it container_name bash

# 设置命令别名
vim /root/.bashrc
# 文件末尾加入以下两行
alias dps='docker ps --format "table {{.ID}}\t {{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"'
alias dis='docker images'
# 重载配置
source /root/.bashrc

Example

1
2
# Nginx
docker run -d --name nginx -p 8080:80 nginx

Dockerfile