网站首页 > 教程文章 正文
目录
- Docker信息相关命令
- Docker镜像相关命令
- Docker容器相关命令
- Docker网络相关命令
1. Docker信息相关命令
docker version #查看Docker版本
docker info #查看Docker信息
docker --help #查看Docker帮助信息
2. Docker镜像相关命令
docker images #查看Docker镜像
# 格式:docker images [选项] [仓库名:标签]
# 选项:
# -a:列出所有镜像(默认只列出本地镜像)
# -q:只显示镜像ID
# --digests:显示镜像的摘要信息
docker search ubuntu #搜索Docker镜像
docker pull ubuntu #下载Docker镜像
docker rmi ubuntu #删除Docker镜像
docker rmi -f ubuntu #强制删除Docker镜像
docker rmi -f $(docker images -qa) #删除所有Docker镜像
3. Docker容器相关命令
docker run ubuntu #运行Docker镜像
# 格式:docker run [选项] 镜像名 [命令]
# 选项:
# --name="name":为容器指定一个名称
# -i:以交互模式运行容器
# -t:为容器重新分配一个伪输入终端通常与-i一起使用
# -v:挂载一个或多个本地主机的目录到容器里面卷
# -d:后台运行容器
# -p:端口映射,格式为:主机端口:容器端口
# -e:设置环境变量,格式为:key=value
docker run -it ubuntu /bin/bash #运行Docker镜像并进入容器
docker run -d ubuntu #后台运行Docker镜像
docker run -d -p 80:80 ubuntu #后台运行Docker镜像并映射80端口
docker run -d -p 80:80 -v /home:/home ubuntu #后台运行Docker镜像并映射80端口并挂载/home目录
docker run -d -p 80:80 -v /home:/home -v /etc:/etc ubuntu #后台运行Docker镜像并映射80端口并挂载/home目录和/etc目录
docker run -d -p 80:80 -v /home:/home -v /etc:/etc -e key=value ubuntu #后台运行Docker镜像并映射80端口并挂载/home目录和/etc目录并设置环境变量
docker ps #查看正在运行的容器
docker ps -a #查看所有容器
docker ps -q #查看所有容器ID
docker ps -l #查看最后一个运行的容器
docker ps -n 10 #查看最近10个运行的容器
docker ps -f name=name #查看指定名称的容器
docker ps -f status=running #查看正在运行的容器
docker ps -f status=exited #查看已退出的容器
docker ps -f status=created #查看已创建的容器
docker ps -f status=paused #查看已暂停的容器
docker ps -f status=restarting #查看重启中的容器
docker ps -f status=removing #查看正在移除的容器
docker ps -f status=dead #查看已死亡的容器
docker ps -f status=stopped #查看已停止的容器
docker start container_id #启动容器
docker start container_name #启动容器
docker start -a container_id #启动容器并附加到标准输出
docker start -a container_name #启动容器并附加到标准输出
docker restart container_id #重启容器
docker restart container_name #重启容器
docker stop container_id #停止容器
docker stop container_name #停止容器
docker kill container_id #强制停止容器
docker kill container_name #强制停止容器
docker rm container_id #删除容器
docker logs container_id #查看容器日志
docker logs -f container_id #查看容器日志并跟随
docker logs -t container_id #查看容器日志并显示时间戳
docker logs -t --tail=10 container_id #查看容器日志并显示时间戳并显示最后10行
docker logs -t --tail=10 --since=1h container_id #查看容器日志并显示时间戳并显示最后10行并显示1小时内的日志
docker top container_id #查看容器进程
docker top container_name #查看容器进程
docker stats container_id #查看容器资源使用情况
docker stats container_name #查看容器资源使用情况
docker inspect container_id #查看容器详细信息
docker inspect container_name #查看容器详细信息
docker exec container_id command #在容器中执行命令
docker exec -it container_id command #在容器中执行命令并进入容器
docker exec -it container_name command #在容器中执行命令并进入容器
docker attach container_id #进入容器
docker attach container_name #进入容器
docker cp container_id:path host_path #从容器中复制文件到主机
docker cp host_path container_id:path #从主机复制文件到容器
docker cp container_id:path host_path #从容器中复制文件到主机
docker cp host_path container_id:path #从主机复制文件到容器
4. Docker网络相关命令
docker network ls #查看网络
docker network create network_name #创建网络
docker network connect network_name container_id #连接网络
docker network connect network_name container_name #连接网络
docker network disconnect network_name container_id #断开网络
docker network disconnect network_name container_name #断开网络
docker network rm network_name #删除网络
docker network inspect network_name #查看网络详细信息
docker network prune #删除所有未使用的网络
网络模式 | 配置 | 说明 |
bridge | --net=bridge | 默认值,在Docker网桥docker0上为容器创建新的网络栈 |
none | --net=none | 不配置网络,用户可以稍后进入容器,自行配置 |
container | --net=container:name/id | 容器和另外一个容器共享Network namespace。kubernetes中的pod就是多个容器共享一个Networknamespace。 |
host | --net=host | 容器和宿主机共享Network namespace |
用户自定义 | --net=自定义网络 | 用户自己使用network相关命令定义网络,创建容器的时候可以指定为自己定义的网络 |
# 默认模式
docker run -d -P --name tomcat01 --net bridge tomcat
# 以下是测试输出
docker@docker:~/docker_data/ubuntu$ docker run -d -P --name tomcat01 --net bridge tomcat
e881248a2c5b7a2063031dbf3a96b39ecdb26bbdbd68fad5aa81859d7abedad1
docker@docker:~/docker_data/ubuntu$ docker network ls
NETWORK ID NAME DRIVER SCOPE
5c56917064b3 bridge bridge local
4a3c3a15cb39 host host local
140de5d9d283 none null local
docker@docker:~/docker_data/ubuntu$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:8c:01:38 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.205/24 brd 192.168.3.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fe8c:138/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 92:98:9b:bb:de:19 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::9098:9bff:febb:de19/64 scope link
valid_lft forever preferred_lft forever
41: veth96ba41f@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default
link/ether 4e:a1:f9:88:4d:34 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::4ca1:f9ff:fe88:4d34/64 scope link
valid_lft forever preferred_lft forever
# 自定义模式
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 testnet01
# 以下是测试输出
docker@docker:~/docker_data/ubuntu$ docker network create --driver bridge --subnet 192.168.
0.0/16 --gateway 192.168.0.1 testnet01
c97896ea815faa6b906ce03d02a0cdad58197a2507e91687ce6fbf749baaecd4
docker@docker:~/docker_data/ubuntu$ docker network ls
NETWORK ID NAME DRIVER SCOPE
5c56917064b3 bridge bridge local
4a3c3a15cb39 host host local
140de5d9d283 none null local
c97896ea815f testnet01 bridge local
docker@docker:~/docker_data/ubuntu$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:8c:01:38 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.205/24 brd 192.168.3.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fe8c:138/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 92:98:9b:bb:de:19 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::9098:9bff:febb:de19/64 scope link
valid_lft forever preferred_lft forever
41: veth96ba41f@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default
link/ether 4e:a1:f9:88:4d:34 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::4ca1:f9ff:fe88:4d34/64 scope link
valid_lft forever preferred_lft forever
42: br-c97896ea815f: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 16:53:e8:84:80:cb brd ff:ff:ff:ff:ff:ff
inet 192.168.0.1/16 brd 192.168.255.255 scope global br-c97896ea815f
valid_lft forever preferred_lft forever
# 自定义网络详情
docker@docker:~/docker_data/ubuntu$ docker inspect testnet01
[
{
"Name": "testnet01",
"Id": "c97896ea815faa6b906ce03d02a0cdad58197a2507e91687ce6fbf749baaecd4",
"Created": "2025-05-08T06:06:24.182700925Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv4": true,
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "192.168.0.0/16",
"Gateway": "192.168.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {},
"Options": {},
"Labels": {}
}
]
# 启动容器并连接到自定义网络
docker run -d -P --name tomcat-net-01 --net testnet01 tomcat
docker run -d -P --name tomcat-net-02 --net testnet01 tomcat
# 以下是测试输出
docker@docker:~/docker_data/ubuntu$ docker run -d -P --name tomcat-net-01 --net testnet01 tomcat
e54830dbf22d81765816555b7e69b83924cef696419f7b39901170b2e34d5bf6
docker@docker:~/docker_data/ubuntu$ docker run -d -P --name tomcat-net-02 --net testnet01 tomcat
01f6fe2b400ec22f134538104598c2833a38c5d220b131ce777070c063a3c58b
docker@docker:~/docker_data/ubuntu$ docker inspect testnet01
[
{
"Name": "testnet01",
"Id": "c97896ea815faa6b906ce03d02a0cdad58197a2507e91687ce6fbf749baaecd4",
"Created": "2025-05-08T06:06:24.182700925Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv4": true,
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "192.168.0.0/16",
"Gateway": "192.168.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"01f6fe2b400ec22f134538104598c2833a38c5d220b131ce777070c063a3c58b": {
"Name": "tomcat-net-02",
"EndpointID": "c3c7c7c074f6fd9f369ff4de550be62a6981a6c3ec6a03b03cc75fc5f196eb62",
"MacAddress": "7e:84:83:30:e9:f0",
"IPv4Address": "192.168.0.3/16",
"IPv6Address": ""
},
"e54830dbf22d81765816555b7e69b83924cef696419f7b39901170b2e34d5bf6": {
"Name": "tomcat-net-01",
"EndpointID": "66dc3a97580290e89e94b4b755578a41ed9a6b829a35f676c773ed0ccbfb7b9f",
"MacAddress": "d6:68:a0:00:5f:a7",
"IPv4Address": "192.168.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
# connet 命令测试
docker network connect testnet01 tomcat01
docker network inspect testnet01
# 测试输出
docker@docker:~/docker_data/ubuntu$ docker network connect testnet01 tomcat01
docker@docker:~/docker_data/ubuntu$ docker network inspect testnet01
[
{
"Name": "testnet01",
"Id": "c97896ea815faa6b906ce03d02a0cdad58197a2507e91687ce6fbf749baaecd4",
"Created": "2025-05-08T06:06:24.182700925Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv4": true,
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "192.168.0.0/16",
"Gateway": "192.168.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"01f6fe2b400ec22f134538104598c2833a38c5d220b131ce777070c063a3c58b": {
"Name": "tomcat-net-02",
"EndpointID": "c3c7c7c074f6fd9f369ff4de550be62a6981a6c3ec6a03b03cc75fc5f196eb62",
"MacAddress": "7e:84:83:30:e9:f0",
"IPv4Address": "192.168.0.3/16",
"IPv6Address": ""
},
"e54830dbf22d81765816555b7e69b83924cef696419f7b39901170b2e34d5bf6": {
"Name": "tomcat-net-01",
"EndpointID": "66dc3a97580290e89e94b4b755578a41ed9a6b829a35f676c773ed0ccbfb7b9f",
"MacAddress": "d6:68:a0:00:5f:a7",
"IPv4Address": "192.168.0.2/16",
"IPv6Address": ""
},
"e881248a2c5b7a2063031dbf3a96b39ecdb26bbdbd68fad5aa81859d7abedad1": {
"Name": "tomcat01", # 容器连接到自定义网络后,其信息出现在Containers中
"EndpointID": "07583dd493c49873277610fca1265814fa6df60550006d23e7e5c1a509bd5413",
"MacAddress": "66:6a:78:87:0a:49",
"IPv4Address": "192.168.0.4/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
- 上一篇: k8s自动化运维八-如何清理docker存储的大文件
- 下一篇: Docker镜像瘦身
猜你喜欢
- 2025-05-21 10张图带你深入理解Docker容器和镜像
- 2025-05-21 Docker实战(二):快速学会镜像的基本使用
- 2025-05-21 那些被"删除"却仍占用空间的文件
- 2025-05-21 Docker镜像与容器的区别
- 2025-05-21 Docker基础知识之操作镜像
- 2025-05-21 带你找回那些被 Docker 吃掉的磁盘空间
- 2025-05-21 Docker工具的使用方法进阶-关于镜像
- 2025-05-21 无论是开发还是运维,都必须掌握的Docker常用命令
- 2025-05-21 Windows 上 Docker 镜像与容器更新全攻略
- 2025-05-21 docker常用命令大全,看这一篇就够了
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- mybatis plus page (35)
- vue @scroll (38)
- 堆栈区别 (33)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)
- redis aof rdb 区别 (33)
- 302跳转 (33)
- http method (35)
- js array splice (33)