一、docker在centos的安装

# 导入密钥,避免签名验证报错
rpm --import https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

# 清理旧源(如果有)
rm -f /etc/yum.repos.d/docker-ce.repo

# 添加阿里云 Docker 源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 适配 CentOS 7,替换源中的版本变量
sed -i 's/$releasever/7/g' /etc/yum.repos.d/docker-ce.repo

# 清理并重建 yum 缓存
yum clean all
yum makecache fast

# 先安装基础依赖
yum install -y slirp4netns fuse-overlayfs

# 安装指定版本的 Docker(和你本地 RPM 包版本一致)
yum install -y docker-ce-20.10.24 docker-ce-cli-20.10.24 containerd.io-1.6.20

# 重新加载 systemd 配置
systemctl daemon-reload

# 启动 Docker 服务
systemctl start docker

# 设置开机自启
systemctl enable docker

# 验证版本
docker -v

# 测试运行容器
docker run --rm hello-world

systemctl restart docker
systemctl stop docker

二、docker部署mysql

1.部署

先配置国内镜像仓库

[root@VM-0-16-centos docker]# vi /etc/docker/daemon.json

{
  "registry-mirrors": [
  	"https://docker.1ms.run"
  ]
}


[root@VM-0-16-centos docker]# systemctl daemon-reload
[root@VM-0-16-centos docker]# systemctl restart docker
[root@VM-0-16-centos docker]# docker info | grep -i mirror

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

这里下载的不是安装包,而是镜像。镜像中不仅包含了MySQL本身,还包含了其运行所需要的环境、配置、系统级函数库。因此它在运行时就有自己独立的环境,就可以跨系统运行,也不需要手动再次配置环境了。这套独立运行的隔离环境我们称为容器

Docker本身包含一个后台服务,我们可以利用Docker命令告诉Docker服务(守护进程),我们想要下载的应用。Docker服务部署应用时,首先要去搜索并下载应用对应的镜像,然后根据镜像创建并允许容器,应用就部署完成了。

2.解读命令

docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  mysql
  • docker run -d :创建并运行一个容器,-d则是让容器以后台进程运行

  • --name mysql : 给容器起个名字叫mysql,你可以叫别的

  • -p 3306:3306 : 设置端口映射。

    • 容器是隔离环境,外界不可访问。但是可以宿主机端口映射容器内到端口,当访问宿主机指定端口时,就是在访问容器内的端口了。

    • 容器内端口往往是由容器内的进程决定,例如MySQL进程默认端口是3306,因此容器内端口一定是3306;而宿主机端口则可以任意指定,一般与容器内保持一致。

    • 格式: -p 宿主机端口:容器内端口,示例中就是将宿主机的3306映射到容器内的3306端口,当你访问宿主机的端口,就会映射到容器内对应的接口。

  • -e KEY=VALUE : 配置容器内进程运行时的一些参数

    • 格式:-e KEY=VALUE,KEY和VALUE都由容器内进程决定

    • 案例中,TZ=Asia/Shanghai是设置时区;MYSQL_ROOT_PASSWORD=123是设置MySQL默认密码

  • mysql : 设置镜像名称,Docker会根据这个名字搜索并下载镜像

    • 格式:REPOSITORY:TAG,例如mysql:8.0,其中REPOSITORY可以理解为镜像名,TAG是版本号

    • 在未指定TAG的情况下,默认是最新版本,也就是mysql:latest

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐