Docker

  • 本人是基于CentOS7的虚拟机学习Docker操作,之前部署网站时用过

下载

docker的下载有官方的文档

  1. 卸载旧版

首先如果系统中已经存在旧的Docker,则先卸载:

yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine \
    docker-selinux 
  1. 配置Docker的yum库

首先要安装一个yum工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

安装成功后,执行命令,配置Docker的yum源(已更新为阿里云源):

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

更新yum,建立缓存

sudo yum makecache fast

3.安装Docker

最后,执行命令,安装Docker

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 启动Docker
systemctl start docker

# 停止Docker
systemctl stop docker

# 重启
systemctl restart docker

# 设置开机自启
systemctl enable docker

# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps
  • 设置开机自启

Screenshot 2025-10-12 180741.png

这样未报错就是安装完成了

让后需要配置镜像源, 因为CentOS7最近都不再支持了,所以我加了许多的镜像源,有的镜像源不能使用

# 进入镜像源配置文件
sudo vi /etc/docker/daemon.json

在里面按 i 进行写入

{
  "registry-mirrors": ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"]
}

让后按 Esc . 按 : 再按 wq 保存退出。

部署软件

部署mysql

docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  mysql

账号是root 密码123

Screenshot 2025-10-12 181308.png

这样就启动了,mysql,可以用图形化工具尝试链接,虚拟机的mysql

Screenshot 2025-10-12 180208.png

镜像

镜像包含应用和运行所需要的环境,配置,系统函数库 .

镜像只需要拉取一次,但是端口只有一个,可以用别的端口映射到3360等端口

提供最小化的环境 vi 文本编辑都没有

容器

Docker运行镜像会创建隔离的环境(容器)

镜像仓库

hub.docekr.com

命令

运行命令

docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  mysql
  • docker run 运行
  • -d 后台运行
  • --name 容器名字(需要唯一)
  • -p 端口映射 宿主机端口 : 容器端口(应用需要的端口)
  • -e 环境变量( 需要查看软件镜像的说明)
  • 最后一行 镜像名字 : MySQL(镜像名字) : 5.7 (版本) / Nginx : 1.0.0

常见命令

  • docker pull 拉取镜像
  • docker images 查看镜像
  • docker rmi 删除镜像
  • docker save 打包文件
  • docker load 解压文件
  • docker push 推送镜像 到镜像仓库
  • docker stop 停止
  • docker start 开启
  • docker ps 查看容器状态 -a (可展示所有容器, 默认停止容器不展示)
  • docker rm 删除容器(不是镜像) -f (强制删除)
  • docker logs 查看日志 -f (持续输出日志)
  • docker exec 进入容器内部 exit(退出) -it 新建命令行 bash指令输入

Screenshot 2025-10-12 192223.png

数据卷(挂载)

数据卷是一个虚拟的目录,主机目录和容器目录链接

Screenshot 2025-10-12 193748.png

双向绑定,宿主机上的文件会映射到容器里的文件

命令

  • docker volume create 创建数据卷
  • docker volume ls 查看数据卷
  • docker volume rm 删除数据卷
  • docker volume inspect 查看某个数据卷的详情
  • docker volume prune 清除数据卷
  • docker run -v(挂载数据卷) 如果不存在会自动创建数据卷

Screenshot 2025-10-12 194531.png

匿名卷

自动生成名字

不推荐使用

自定义镜像

每层都是独立的压缩包 , 合并成一个镜像

基础镜像

可以简化我们镜像的制作

启动脚本 ( 入口)

程序启动的参数

Dockerfile

Dockerfile 是一个普通的文本文件 里面集成指令描述镜像

  • FROM 指定基础镜像 FROM centos : 6
  • ENV 设置环境变量
  • COPY 拷贝文件
  • RUN 安装过程的命令 运行shell命令
  • EXPOSE 容器监听端口 描述(给使用者看的)

构建

docker build -t (名称) : 版本 . <--- 目录

网络

Screenshot 2025-10-15 193505.png

dockerCompose

.yml 文件实现多个容器的快速部署

结束

迷茫java练习生