【开发环境】docker-指定网络和IP

docker是开发者的有力工具,使用docker可以很简单方便的安装开发的工具和环境。

不过有些工具安装时需要指定引用的服务,比如安装rocketmq的console容器时,需要指定rocketmq broker的容器ip地址,再比如安装kibana需要指定elasticsearch容器的ip地址,这个时候传入127.0.0.1是不行的。猜测当传入127.0.0.1时,它应该是在容器内部查找,而没有跳出来找到host机器。所以需要传入一个真正的ip地址。

但是作为码农,经常在公司和家都要开发,电脑的IP是经常变化的,所以我们需要给容器一个固定的IP地址。

docker默认有三个网络:bridge/host/none。容器默认指定网络bridge,而且IP是动态分配的,不能指定IP地址,所以需要自定义网络。

一、创建自定义网络

$ docker network create --driver bridge --subnet=172.16.12.0/16 --gate=172.16.1.1 mynetwork
  • --driver 指定网络类型
  • --subnet 指定网络和子网掩码
  • --gate 指定网络网关

二、新建容器如何指定网络和IP

$ docker run -itd --name mysql7 --network=mynetwork --ip 172.16.12.12 mysql:5.7.30
  • --network 指定网络
  • --ip 指定IP

三、已存在的容器如何指定网络和IP

3.1 解除旧网络

$ docker network disconnect bridge mysql7

这里假设mysql7这个容器是在默认网络 bridge中,这样先把它的网络解除。

3.2 重新指定网络和IP

$ docker network connect mynetwork mysql7 --ip 172.16.12.13

3.3 重启容器使更改生效

四、参考

更改Docker容器网络地址_修改docker网络_佛系写BUG的博客-CSDN博客

Docker 创建容器时指定容器ip - 简书

如何创建Docker中的网络_docker 创建网络_ly4983的博客-CSDN博客

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 编写 MySQL 的 Docker Compose 文件 (docker-compose.yml) 可以实现在 Docker 环境中快速部署和管理 MySQL 数据库。以下是一个示例的 docker-compose.yml 文件: ```yaml version: '3.8' services: mysql: image: mysql:latest restart: always environment: MYSQL_ROOT_PASSWORD: mysecretpassword MYSQL_DATABASE: mydatabase MYSQL_USER: myuser MYSQL_PASSWORD: mypassword volumes: - ./data:/var/lib/mysql ports: - 3306:3306 ``` 在这个示例中,我们定义了一个名为 `mysql` 的服务,使用了最新版本的 MySQL 镜像。`restart: always` 命令可以确保 MySQL 容器在停止后自动重新启动。 通过 `environment` 部分,我们可以设置 MySQL 的一些环境变量,如 `MYSQL_ROOT_PASSWORD`、`MYSQL_DATABASE`、`MYSQL_USER` 和 `MYSQL_PASSWORD`。这些环境变量用来设置 MySQL 的根密码、创建的数据库、新用户的用户名和密码。 `volumes` 部分指定了宿主机和容器之间的数据卷映射。在这个示例中,我们将宿主机的 `./data` 文件夹映射到容器内的 `/var/lib/mysql` 目录,以保持数据的持久化。 通过 `ports` 部分,我们将容器内的 3306 端口映射到宿主机的 3306 端口,可以通过宿主机的 IP 地址和端口号来访问 MySQL 数据库。 在终端中,进入包含 docker-compose.yml 文件的目录,执行以下命令即可启动 MySQL 服务: ``` docker-compose up -d ``` 这样,MySQL 容器将在后台运行,并通过定义的端口对外提供服务。可以使用其他 MySQL 客户端工具连接到数据库。如果需要停止 MySQL 服务,可以运行以下命令: ``` docker-compose down ``` 以上就是一个基本的 MySQL Docker Compose 文件的编写和使用方法。根据实际需求,可以进行适当的修改和扩展。 ### 回答2: MySQL是一个流行的关系型数据库管理系统,而Docker Compose是一个工具,它可以通过YAML文件来定义和管理多个Docker容器,使得应用程序的部署和管理更加简便和可重复。 当我们需要部署MySQL数据库时,可以使用Docker Compose来编写一个docker-compose.yml文件,以下是一个示例: version: '3' services: db: image: mysql container_name: mysql_db restart: always environment: MYSQL_ROOT_PASSWORD: mysecretpassword MYSQL_DATABASE: mydatabase MYSQL_USER: myuser MYSQL_PASSWORD: mypassword ports: - 3306:3306 volumes: - ./data:/var/lib/mysql 在这个示例中,我们定义了一个名为db的服务,其基于MySQL镜像创建容器。我们指定容器的重启策略为always,表示容器在停止后会自动重启。使用environment字段,我们设置了MySQL的root密码、数据库名称、用户名和密码等环境变量。通过ports字段,我们将容器内部的3306端口映射到宿主机的3306端口,以便在宿主机上访问MySQL服务。使用volumes字段,我们将MySQL数据目录挂载到宿主机的./data目录,以便数据的持久化存储。 通过编写这个docker-compose.yml文件,我们可以使用docker-compose命令快速启动和管理MySQL数据库容器,如下所示: $ docker-compose up -d 这样,MySQL容器将在后台运行,并根据我们在docker-compose.yml文件中定义的配置进行初始化和配置。我们可以通过连接到localhost:3306来访问MySQL数据库,并使用我们在docker-compose.yml文件中设置的用户名和密码进行身份验证。 整体而言,通过MySQL的docker-compose.yml文件编写,我们能够快速地部署和管理MySQL数据库容器,提高了开发和部署过程的效率和可重复性。 ### 回答3: MySQL是一个非常流行的开源关系型数据库管理系统,而Docker Compose是一种能够简化应用程序容器化部署的工具。 编写一个MySQL的docker-compose.yml文件通常需要以下几个步骤: 1. 首先,我们需要指定MySQL容器的版本。可以通过添加版本号来实现,如:version: '3'。 2. 接下来,我们需要定义服务。在这个例子中,我们只定义一个MySQL服务。可以通过添加services: mysql来实现。 3. 在MySQL服务下,我们需要指定镜像。可以通过添加image: mysql来实现。 4. 然后,我们需要指定MySQL的环境变量。可以通过添加environment来实现。这些环境变量包括:MYSQL_ROOT_PASSWORD(MySQL的根密码)、MYSQL_DATABASE(要创建的数据库名称)和MYSQL_USER(要创建的用户名)等。 5. 另外,我们可以使用volumes选项将本地的目录挂载到MySQL容器中,以便于持久化数据。 综上所述,一个基本的MySQL的docker-compose.yml文件可以如下所示: version: '3' services: mysql: image: mysql environment: - MYSQL_ROOT_PASSWORD=123456 - MYSQL_DATABASE=mydb - MYSQL_USER=myuser volumes: - ./data:/var/lib/mysql 这个docker-compose.yml文件定义了一个名为mysql的服务,它使用MySQL的官方镜像,并指定了根密码为123456、创建的数据库名为mydb、用户名为myuser。同时,将当前目录下的data目录映射到MySQL容器的/var/lib/mysql目录,以进行数据持久化。 通过这样的docker-compose.yml文件,我们可以使用Docker Compose轻松部署和管理MySQL容器。只需要在终端中进入到该文件所在的目录,然后运行docker-compose up命令即可启动MySQL容器

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值