Docker基础命令
# 容器
用镜像启动的应用成为容器
# 安装
开通服务器-安装Docker-
- 移除旧版本docker
- 安装 最新 docker
# 以安装Nginx
为例
下载镜像-启动容器-修改页面-保存镜像-分享社区
# 下载镜像
docker pull nginx
# 查看镜像
docker images
# 启动容器
docker run nginx
# 或者这样启动
# 访问服务器到达Nginx默认页,端口映射
docker run -d --name mynginx -p 80:80 nginx
# 查看运行的应用
docker ps
# 进入容器
docker exec -it mynginx /bin/bash
# 修改页面
# 进入Nginx文件路径
cd /usr/share/nginx/html
echo "<h1>Hello</h1>" index.html
# 后续使用docker的存储,把内部的文件夹直接映射外部主机位置,直接在主机位置改
# 保存镜像
# 提交
docker commit -m "update" mynginx mynginx:v1.0
# 查看镜像(可以查看已提交的)
docker images
# 保存(将镜像保存成文件)
docker save -o mynginx.tar mynginx:v1.0
# 查看该路径(可以查看已保存的)
ls
# 加载
docker load -i mynginx.tar
# 检查镜像
docker images
# 运行镜像
docker run -d --name app01 -p 80:80 mynginx:v1.0
# 检查是否开启成功
docker ps
# 分享社区
docker login
docker tag mynginx:v1.0 hiu/mynginx:v1.0
docker push hiu/mynginx:v1.0
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
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
# 镜像命令
# 检索
搜索镜像
docker search 镜像名
1
# 下载
下载镜像
docker pull 镜像名
1
# 列表
查看下载的镜像
docker images
1
# 删除
docker rmi 镜像id
1
# 保存本地
# 提交
把容器提交成镜像
docker commit [OPTIONS] 镜像 [镜像名[:版本号]]
1
参数
-m
:提交信息
docker commit -m "update" mynginx mynginx:v1.0
1
# 保存
将镜像保存成文件,方便进行文件传输的方式
docker save [OPTIONS] 文件名 [文件]
1
参数
-o
: 保存的文件
docker save -o mynginx.tar mynginx:v1.0
1
# 加载
加载文件
docker load [OPTIONS]
1
参数
-i
: 压缩包名字
docker load -i mynginx.tar
1
# 推送社区
# 登录
docker login
1
# 命名
镜像改名
docker tag 镜像名[:版本号] 用户名(镜像名)[:版本号]
1
docker tag mynginx:v1.0 hiu/mynginx:v1.0
# 将1.0设置为最新的版本
docker tag mynginx:v1.0 hiu/mynginx:latest
1
2
3
4
2
3
4
# 推送
docker push 镜像名[:版本号]
1
docker push hiu/mynginx:v1.0
# 最新的版本
docker push hiu/mynginx:latest
1
2
3
2
3
# 容器命令
# 运行
docker run [OPTIONS] IMAGE [COMMAND]
1
参数
-d
:后台启动--name
:容器名-p
:端口映射-p 80:80主机80对应容器80
容器端口可以重复,主机端口不可以重复;同一台机器同一个端口只能开一个
docker run -d --name mynginx -p 80:80 nginx
1-v
:目录挂载允许在自己的机器外面开辟一个目录,指向容器的目录;在外面目录修改直接影响内部目录的内容
# docker run -d -p 外部端口:内部端口 -v 外部目录:内部目录 --name 容器名 镜像 docker run -d -p 80:80 -v /app/nghtml:/usr/share/nginx/html --name app01 nginx
1
2
# 查看
参数
-a
:所有容器信息(包括停止的)-q
:所有容器id
# 运行中
docker ps
1
2
2
# 停止
docker stop
1
# 启动
docker start 容器id(可以只写三位)/容器名
1
# 重启
docker restart 容器名
1
# 状态
# 查看应用CPU、内存、网络IO等占用情况
docker stats
1
2
2
# 日志
# 进行排查
docker logs
1
2
2
# 进入
docker exec
1
参数
-it
:交互模式
docker exec -it 容器名 哪种方式
1
docker exec -it app01 bash
1
# 删除
# 停止了才能删除
docker rm 容器id
# 强制删除
docker rm -f 容器id
# 批量删除所有容器
docker rm $(docker ps -aq)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 命令
::: details
#查看运行中的容器
docker ps
#查看所有容器
docker ps -a
#搜索镜像
docker search nginx
#下载镜像
docker pull nginx
#下载指定版本镜像
docker pull nginx:1.26.0
#查看所有镜像
docker images
#删除指定id的镜像
docker rmi e784f4560448
#运行一个新容器
docker run nginx
#停止容器
docker stop keen_blackwell
#启动容器
docker start 592
#重启容器
docker restart 592
#查看容器资源占用情况
docker stats 592
#查看容器日志
docker logs 592
#删除指定容器
docker rm 592
#强制删除指定容器
docker rm -f 592
# 后台启动容器
docker run -d --name mynginx nginx
# 后台启动并暴露端口
docker run -d --name mynginx -p 80:80 nginx
# 进入容器内部
docker exec -it mynginx /bin/bash
# 提交容器变化打成一个新的镜像
docker commit -m "update index.html" mynginx mynginx:v1.0
# 保存镜像为指定文件
docker save -o mynginx.tar mynginx:v1.0
# 删除多个镜像
docker rmi bde7d154a67f 94543a6c1aef e784f4560448
# 加载镜像
docker load -i mynginx.tar
# 登录 docker hub
docker login
# 重新给镜像打标签
docker tag mynginx:v1.0 leifengyang/mynginx:v1.0
# 推送镜像
docker push leifengyang/mynginx:v1.0
:::
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
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
# 存储
容器一启动,是启动一个独立的文件系统;容易一销毁,文件系统内容也销毁;
# 目录挂载
允许在自己的机器外面开辟一个目录,指向容器的目录;在外面目录修改直接影响内部目录的内容
docker run -d -p 80:80 -v /app/nghtml:/usr/share/nginx/html --name app01 nginx
cd /app/nghtml
echo 2222 > index.html
1
2
3
4
2
3
4
# 卷映射
用于更新容器中的配置文件
docker run -d -p 99:80 -v /app/nghtml:/usr/share/nginx/html -v ngconf:/etc/nginx --name app03 nginx
1
docker配置文件统一路径/var/lib/docker/volumes/<volumes-name>
下的_data
# 列出卷
docker volumes ls
# 创建卷
docker volumes xx
# 查看卷详情
docker volumes inspect ngconf
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 网络
# 获取容器的信息
docker inspect app1
# http://172.17.0.2
docker inspect app2
# http://172.17.0.3
# 在app1容器查看app2的内容
curl http://172.17.0.3:80
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
上次更新: 2024/08/14, 04:14:33