目录
一,Docker 安装
1. 为什么选 Rocky Linux 9
2. 环境准备
3. 安装 Docker
4. 镜像加速器配置
二,镜像操作
1. 搜索镜像
2. 下载镜像
3. 查看镜像
4. 删除镜像
5. 载入镜像
6. 提交改变
7. 镜像传输
8. 推送远程仓库
三,容器操作
1. 查看状态
2. 启动容器
3. 停止容器
4. 创建容器并启动
5. 进入容器
6. 挂载数据到外部修改
7. 导出容器
8. 导入容器
9. 容器内文件复制到主机
10. 主机文件复制到容器内
一,Docker 安装
1. 为什么选 Rocky Linux 9
- CentOS 7 已于 2024 年 6 月停止维护,CentOS 8 更早停更。
- 现在企业 Linux 服务器主流就两条路:Rocky Linux 9 或 AlmaLinux 9——两者都是 RHEL 9 的 1:1 二进制兼容克隆,稳定且免费。
- Docker 官方对 RHEL 9 系推荐24.0.x或直接用29.x 最新稳定版。
- 本文以Rocky Linux 9.8 + Docker 29.x为例
2. 环境准备
# 确认版本 cat /etc/os-release | head -3 # 确保网络通 ping -c 2 mirrors.rockylinux.org # 关防火墙(学习环境)或放行 443/80 systemctl stop firewalld systemctl disable firewalld # SELinux 先关掉减少干扰(生产建议配策略) setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config注:如果是 VM 用 NAT 模式,记得检查网关是否正确(ip route)
3. 安装 Docker
1. 卸载旧版本(如果有)
sudo dnf remove docker docker-client docker-client-latest docker-common \ docker-latest docker-latest-logrotate docker-logrotate docker-engine \ podman runc2. 添加 Docker 官方仓库
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo3. 安装 Docker Engine
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y4. 启动并验证
sudo systemctl start docker sudo systemctl enable docker docker --version4. 镜像加速器配置
- 编辑加速器配置文件,推荐内容如下
sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.m.daocloud.io", "https://1ms.run", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn", "https://ju9kaj2.mirror.aliyuncs.com", "https://hub-mirror.c.163.com", "https://cr.console.aliyun.com", "https://hub.docker.com", "http://mirrors.ustc.edu.cn" ] } EOF- 重启服务
systemctl daemon-reload systemctl restart docker.service二,镜像操作
1. 搜索镜像
docker search 镜像名 # docker search nginx2. 下载镜像
docker pull 镜像名 # docker pull nginx3. 查看镜像
docker images 仓库名称[:标签] # docker images(不加仓库,显示所有镜像) # docker images nginx docker inspect 镜像ID # docker inspect fffffc90d3434. 删除镜像
docker rmi 仓库名称[:标签] 或 docker rmi 镜像ID号 # docker rmi nginx:1.27 # docker rmi e567d6f839405. 载入镜像
docker load < 文件名 # docker load < xiaoyi.tar6. 提交改变
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] docker commit -a "xiaoyi" -m "添加了医院挂号页面" web alynginx:v1.17. 镜像传输
# 将镜像保存成压缩包 docker save -o abc.tar alynginx:v1.0 # 别的机器加载这个镜像 docker load < abc.tar8. 推送远程仓库
docker tag 源镜像 仓库地址/项目名/镜像名:标签 docker push 仓库地址/项目名/镜像名:标签三,容器操作
1. 查看状态
docker ps [选项] # docker ps # docker ps -a 包含未运行的容器2. 启动容器
docker start 容器名 # docker start web3. 停止容器
docker stop 容器名 # docker stop web4. 创建容器并启动
docker run [选项] 镜像 运行的程序 执行的命令 # docker run --name=mynginx -d --restart=always -p 80:80 nginx5. 进入容器
docker exec [选项]容器的ID/名称 /bin/bash # docker exec -it 1acf0e5cbcb0 /bin/bash6. 挂载数据到外部修改
docker run --name=mynginx \ -d --restart=always \ -p 88:80 -v /data/html:/usr/share/nginx/html:ro \ nginx # 修改页面只需要去主机的 /data/html7. 导出容器
docker export 容器的ID/名称 > 文件名 # docker export 1acf0e5cbcb0 > centos-lamp8. 导入容器
cat 文件名 | docker import –生成的镜像名称:标签 # cat centos-lamp | docker import - centos-lamp9. 容器内文件复制到主机
# 把容器指定位置的东西复制出来 docker cp 5eff66eec7e1:/etc/nginx/nginx.conf /data/conf/nginx.conf10. 主机文件复制到容器内
# 把外面的内容复制到容器里面 docker cp /data/conf/nginx.conf 5eff66eec7e1:/etc/nginx/nginx.conf