30 条命令吃透 Docker + 防火墙!从拉镜像到服务迁移一站式速查表
·
文章目录
防火墙
查看防火墙开放端口
firewall-cmd --list-ports
开放特定端口
firewall-cmd --permanent --add-port=80/tcp
重新加载 firewalld 防火墙的配置
firewall-cmd --reload
Docker操作
拉镜像
我一般https://docker.aityp.com/s/docker.io这网址找到自己想要的镜像,复制相关命令可以去Linux环境操作
比如拉去nginx镜像,选择上图中的nginx

需要注意你的操作系统架构
uname -m
| 值 | 含义 |
|---|---|
| x86_64 | Intel/AMD 64 位 |
| aarch64 | ARM 64 位 |
| i686 | 32 位 x86 |
下拉找到拉镜像命令
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginxinc/nginx-unprivileged:1.29.0-alpine3.22
看起来很长,其实就两部分:“从哪个仓库拉” + “拉什么镜像”。
从 华为云华北-北京四 SWR 公有仓库的 ddn-k8s 命名空间里,拉取一份 nginxinc/nginx-unprivileged:1.29.0-alpine3.22 的非 root 版 nginx镜像到本地。
查看镜像
docker images
给现有镜像起个别名(新名字:新标签)
docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginxinc/nginx-unprivileged:1.29.0-alpine3.22 docker.io/nginxinc/nginx-unprivileged:1.29.0-alpine3.22
| 位置 | 说明 |
|---|---|
| SOURCE_IMAGE | 已经存在的镜像 ID 或 名字:标签 |
| TARGET_IMAGE | 想要的新名字:新标签 |
运行容器
创建本地映射的文件
mkdir -p /data/nginx/{conf,html,logs}
/data/nginx
├── conf # 放 nginx.conf
├── html # 放网站文件
└── logs # 访问日志 + 错误日志
运行容器
docker run -d --name mynginx \
-p 80:80 \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/html:/usr/share/nginx/html \
-v /data/nginx/logs:/var/log/nginx \
--restart unless-stopped \
docker.io/nginxinc/nginx-unprivileged:1.29.0-alpine3.22
| 参数 | 含义 |
|---|---|
docker run |
创建并启动容器 |
-d |
后台运行(detach) |
--name mynginx |
给容器起个名字,方便后续 start/stop/logs/exec 等操作 |
-p 80:80 |
端口映射;宿主机 80 → 容器 80(镜像里 nginx 监听 80) |
-v 宿主机文件:容器内路径 |
挂载卷;容器里不能改该文件/目录 |
--restart unless-stopped |
重启策略: • 宿主机重启后自动把容器拉起来 • 手动 docker stop 后不再自启 |
| 最后一个字段 | 要使用的镜像名:标签 |
查看运行中的容器
docker ps
查看所有容器(包括已经停止)
docker ps -a
docker run命令容器第一次运行是使用的,不用docker start 容器名
启动容器
如果容器没有运行
docker start 容器名
docker start mynginx
停止容器
docker stop 容器名
docker stop mynginx
重启容器
docker restart 容器名
docker restart mynginx
查看容器日志
docker logs 容器名
docker logs mynginx ### 谨慎使用,这命令打印的是全部日志
docker logs -f mynginx ### 只看最后 200 行历史日志,打印完就退出。
docker logs -n 200 mynginx ### 只看最后 200 行历史日志,打印完就退出。
进入容器
下面三种命令都可以进入容器
docker exec -it mynginx /bin/bash
docker exec -it mynginx bash
docker exec -it mynginx sh
exit 命令退出容器
删除容器
docker rm 容器名
docker rm mynginx
查看容器信息
docker inspect mynginx
提取卷映射信息(更精确)
docker inspect -f '{{ range .Mounts }}{{ .Source }}:{{ .Destination }}{{ "\n" }}{{ end }}' mynginx
如果宿主机没有映射的文件,可以先复制容器内想要改的文件
docker cp mynginx:/etc/nginx/nginx.conf /data/nginx/
这命令容器中的nginx.conf文件备份到宿主机上的/data/nginx/目录下,宿主机中修改完nginx.conf配置文件复制到容器中去
docker cp /data/nginx/nginx.conf mynginx:/etc/nginx/nginx.conf
检查容器中的nginx配置文件
docker exec mynginx nginx -t ###检查配置文件是否正确
docker exec mynginx nginx -s reload ###重启nginx配置文件
docker restart mynginx ### 重启nginx容器
docker logs mynginx ### 查看nginx容器日志
删除镜像
docker rmi 镜像名
需要迁移服务
导出镜像
docker save -o mynginx.tar mynginx:latest
导入镜像(tar)
docker load -i mynginx.tar
更多推荐
所有评论(0)