Docker | Docker快速通关

Docker基础

docker架构

容器化

安装
- 官方文档: https://docs.docker.com/engine/install/centos/
# 移除旧版本docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 配置docker yum源。
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装 最新 docker
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-pl ugin docker-compose-plugin
# 启动& 开机启动docker; enable + start 二合一systemctl enable docker --now
# 配置加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.1panel.live",
"https://docker.hlmirror.com",
"https://docker.apiba.cn",
"https://docker.1ms.run",
"https://5pox5fr3.mirror.aliyuncs.com"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
Docker命令
- 官方命令: https://docs.docker.com/reference/cli/docker/

下载镜像
#查看运行中的容器
docker ps
#查看所有容器
docker ps -a
#搜索镜像
docker search nginx
#下载镜像
docker pull nginx
#下载指定版本镜像
docker pull nginx:1.26.0
#查看所有镜像
docker images
#删除指定id的镜像
docker rmi e784f4560448
检索镜像

下载镜像

提示
- 下载指定版本的镜像:https://hub.docker.com/



列出镜像

删除镜像


启动容器
#运行一个新容器
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
运行容器


提示
- run细节

成功访问nginx默认页面


查看容器(运行中容器)

提示
- 查看停止运行的容器

启动与停止镜像

重启镜像

查看容器状态


查看容器日志

删除容器


修改页面
# 后台启动容器
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- 登录docker hub

- 重新给镜像打标签

- 推送镜像

- 可以在docker hub中搜索到推送的镜像


- 迭代镜像版本(重新打标签+重新推送)

- 添加安全组开放相关端口
Docker存储

原始修改页面的操作
~> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d0b2dcc3ceff nginx:latest "/docker-entrypoint.…" 11 days ago Up 2 minutes 0.0.0.0:80->80/tcp, [::]:80->80/tcp nginx ~> docker exec -it d0b bash root@d0b2dcc3ceff:/# cd /usr/share/nginx/html/ root@d0b2dcc3ceff:/usr/share/nginx/html# ls 50x.html index.html root@d0b2dcc3ceff:/usr/share/nginx/html# echo 22222 > index.html
- 重新拉取一个镜像,页面又变回了默认页面,导致数据丢失
两种方式,注意区分:
目录挂载: -v /app/nghtml:/usr/share/nginx/html
卷映射: -v ngconf:/etc/nginx
# 目录挂载
docker run -d -p 80:80 -v /app/nghtml:/usr/share/nginx/html --name app01 nginx
# 卷映射
docker run -d -p 99:80 -v /app/nghtml:/usr/share/nginx/html -v ngconf:/etc/nginx --name app03 nginx目录挂载

# 目录挂载
docker run -d -p 80:80 -v /app/nghtml:/usr/share/nginx/html --name app01 nginx
- 不会删除外部的/app/nghtml

- 内部的/usr/share/nginx/html更新外部的/app/nghtml也会更新

卷映射
# 卷映射
docker run -d -p 99:80 -v /app/nghtml:/usr/share/nginx/html -v ngconf:/etc/nginx --name app03 nginx
- 错误写法
- 正确写法:

- 外部卷更新内容——>内部卷也更新

- 查看卷命令
# 查看所有卷
docker volume ls
# 查看所有卷
docker volume create haha(卷名)
# 查看指定卷的内容
docker volume inspect ngconf(指定卷名)
- 删除镜像,卷依然存在

Docker网络

# 第一个镜像
docker run -d -p 88:80 --name app1 nginx
# 第二个镜像
docker run -d -p 99:80 --name app2 nginx
Docker Compose
Dockerfile
贡献者
更新日志
2026/5/18 06:06
查看所有更新日志
37c26-优化MySQL文章封面于




