# dev-tools-deploy **Repository Path**: csthink/dev-tools-deploy ## Basic Information - **Project Name**: dev-tools-deploy - **Description**: 记录常用中间件的安装部署方式 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-20 - **Last Updated**: 2025-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Docker Engine 配置 ```json { "builder": { "gc": { "defaultKeepStorage": "30GB", "enabled": true } }, "experimental": false, "insecure-registries": [ "hub.csthink.com" ], "registry-mirrors": [ "https://391q2suc.mirror.aliyuncs.com", "https://registry.cn-hangzhou.aliyuncs.com", "https://docker.mirrors.ustc.edu.cn", "http://f1361db2.m.daocloud.io", "https://docker.nju.edu.cn/" ] } ``` ## 网络初始化 参考:https://blog.csdn.net/weixin_54622246/article/details/135341663 Docker容器的IP地址是在容器启动时由Docker守护进程分配的,默认情况下,容器内部的IP地址可能会在每次容器启动时发生变化。容器获得的IP地址是从宿主机上预配置的网络桥接接口的子网池中分配的。 当容器停止并重新启动时,它通常会得到一个新的IP地址,因为Docker会将先前的IP地址放回到地址池中供未来容器使用。 - 创建一个新的网络(需要全局执行一次) ```shell docker network create csthink-dev-net # -d 参数指定 Docker 网络类型,有 bridge overlay。其中 overlay 网络类型用于 Swarm mode #docker network create -d bridge csthink-dev-net ``` ![img.png](images/docker-network.png) - 启动容器时指定网络(演示用,不用实际执行) ```shell docker run --net=my-custom-network --name=my-container my-image # 当你在用户定义的网络中启动容器时,你可以手动指定容器的IP地址,这个IP地址必须在网络的子网内,并且未被其他容器占用。 docker run --net=my-custom-network --ip=172.28.0.10 --name=my-container my-image ``` 保持IP地址不变通常对于容器间的网络通信来说不是必要的,因为Docker提供了其他发现机制,如链接和DNS解析(通过容器名)。 最好的做法通常是通过容器名进行网络通信,而不是依赖于IP地址,这可以让你的Docker架构更灵活且易于维护。 - 容器名进行通信的方式(推荐使用) ```shell docker run --name=container1 --network csthink-dev-net my-app-image docker run --name=container2 --network csthink-dev-net my-db-image ``` 在这个例子中,container1 可能是一个Web应用程序,而 container2 是相关的数据库服务。 在 container1 中,你想要连接到 container2 上的数据库服务,可以使用 container2 作为主机名来进行连接,例如: db.connect("container2:3306") 在这儿,"3306"是MySQL默认的端口号。“container2”在DNS解析中指向了该容器的内部IP地址。 - Docker Compose 使用案例 ```shell version: '3' services: webapp: image: my-app-image networks: - csthink-dev-net database: image: my-db-image networks: - csthink-dev-net #docker-compose 创建新的网络 #networks: # csthink-dev-net: # driver: bridge # docker-compose 加入已存在的网络 networks: csthink-dev-net: external: true ```