创建网络

创建网络

创建网络的目的

创建网络

text
docker network create my-network

创建网络的目的

  1. 用名字代替IP(最关键):容器连上自定义网络后,其他容器可以直接用它的名字(比如 mysql-test)来访问它。因为容器每次重启 IP 都会变,但名字不变。如果你不用自定义网络,就只能用写死的 IP,容器一重启,你的后端代码就得跟着改,非常麻烦。
  2. 让项目互相隔离,互不打扰:假如你的服务器上同时跑着“项目A”和“项目B”,把它们放进各自独立的网络里,它们就互相“看不见”对方了。这样既安全(别人攻不进来),又能防止端口冲突(比如两个项目都用了 3306 端口,隔开后就互不影响)。

部署数据库

我的项目使用的是mysql 8.0.34版本

拉取 MySQL 8.0.34 镜像命令

text
docker pull mysql:8.0.34

创建数据库容器

text
docker run -d \
--name mysql \
-p 3307:3306 \
-e MYSQL_ROOT_PASSWORD=123 \
-e TZ=Asia/Shanghai \
-v /root/mysql/data:/var/lib/mysql \
-v /root/mysql/init:/docker-entrypoint-initdb.d \
-v /root/mysql/conf:/etc/mysql/conf.d \
mysql:8
  • docker run - 基本命令。
  • -d - 分离模式(后台运行)。
  • --name mysql - 容器名称。
  • -p 3307:3306 - 端口映射(宿主机:容器)。
  • -e MYSQL_ROOT_PASSWORD=123 - 环境变量(root 密码)。
  • -e TZ=Asia/Shanghai - 环境变量(时区)。
  • -v /root/mysql/data:/var/lib/mysql - 数据持久化卷挂载。
  • -v /root/mysql/init:/docker-entrypoint-initdb.d - 初始化脚本目录挂载。
  • -v /root/mysql/conf:/etc/mysql/conf.d - 自定义配置文件目录挂载。
  • mysql:8.0.34 - 镜像名称和标签。

如果数据库有初始化脚本可以将初始化脚本放到本地目录的init文件夹可以自动执行初始化脚本

评论区

评论加载中...