(四)docker:为mysql和java jar运行环境创建同一网络,容器互联

这篇具有很好参考价值的文章主要介绍了(四)docker:为mysql和java jar运行环境创建同一网络,容器互联。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 看了很多资料,说做互联的一个原因是容器内ip不固定,关掉重启后如果有别的容器启动,之前的ip会被占用,所以做互联创建一个网络,让几个容器处于同一个网络,就可以互联还不受关闭再启动ip会改变的影响,但是其实我拿我做的mysql测试,不管是代码里还是sql连接工具,使用容器内ip根本连接不到,只有使用我本机的ip连接才能连接上,所以实际容器内部ip变化对我的使用并没有影响,但是我特别在网上查了很多,他们好像用本地ip都连接不上,只能用容器内的ip,这个我就不直到为什么了,不过我只是为了学习如何创建网络,以及将新建的容器和既存的容器连接到一个网络即可,现在不懂的地方可以在以后有机会的时候就能知道为什么了,忽略次要的,重点先学会用。
  2. 先创建一个网络
   docker network create -d bridge sixdog
  1. 查看创建的网络
sixdog@sixiaodong dockerfile % docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
5451e1cd08f8   bridge    bridge    local
d8b19cbdca68   host      host      local
f46cec15b991   none      null      local
1dadf784140f   sixdog    bridge    local
  1. 我现在有一个既存的容器mysql-dev,准备把它连接到sixdog网络里

4.1 查看mysql-dev容器

sixdog@sixiaodong dockerfile % docker ps -a
CONTAINER ID   IMAGE                       COMMAND                   CREATED         STATUS                      PORTS                               NAMES
465ae184cd56   mysql:latest                "docker-entrypoint.s…"   23 months ago   Up 24 hours                 33060/tcp, 0.0.0.0:3307->3306/tcp   mysql-dev

4.2 查看mysql-dev部分网络信息

sixdog@sixiaodong dockerfile % docker inspect mysql-dev
其他部分省略
"Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.2",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:02",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "5451e1cd08f83eeba5495ecd8041332382c20068fa44e103b759442217f62867",
                    "EndpointID": "4388a57b5eed4fb767d918eb274a8b631d1e8fa8793909e6373a9e2c5466c580",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02",
                    "DriverOpts": null
                }
            }

4.3 尝试连接

sixdog@sixiaodong dockerfile % docker network connect sixdog mysql-dev

4.4 查看网络信息

sixdog@sixiaodong dockerfile % docker inspect mysql-dev  
其他部分省略
"Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.2",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:02",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "5451e1cd08f83eeba5495ecd8041332382c20068fa44e103b759442217f62867",
                    "EndpointID": "4388a57b5eed4fb767d918eb274a8b631d1e8fa8793909e6373a9e2c5466c580",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02",
                    "DriverOpts": null
                },
                "sixdog": {
                    "IPAMConfig": {},
                    "Links": null,
                    "Aliases": [
                        "465ae184cd56"
                    ],
                    "NetworkID": "1dadf784140fe418f4bd421b63ecd06ed46a1ebf41d386fba725e454349acb86",
                    "EndpointID": "1fc1d1d1dcaa6f37732690e82b684370638070a76c3d6a7ee08ebe94474711e8",
                    "Gateway": "172.18.0.1",
                    "IPAddress": "172.18.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:12:00:02",
                    "DriverOpts": {}
                }
            }

4.5 我用dbeaver使用172.18.0.2连接了下,连接不上mysql-dev,用我本机的ip可以

  1. 新建一个jar的运行环境,配置启动时的外部配置文件里的mysql连接ip改为172.18.0.2,并把这个新创建的容器加到sixdog网络里
    5.1 新建一个jar的运行环
#db访问配置
spring.datasource.url=jdbc:mysql://172.18.0.2:3307/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driverClassName =com.mysql.cj.jdbc.Driver

server.port=8082
sixdog@sixiaodong dockerfile % docker run --name appsixdog --network sixdog -p 8082:8082 -d app:v1
74c9a0faaaff167802fd6532278e8e10fe0a1d3cb993c275fe32e064e130fb2d

5.2 查看容器

sixdog@sixiaodong dockerfile % docker ps -a
CONTAINER ID   IMAGE                       COMMAND                   CREATED         STATUS                      PORTS                               NAMES
74c9a0faaaff   app:v1                      "java -Dspring.confi…"   9 seconds ago   Up 8 seconds                0.0.0.0:8082->8082/tcp              appsixdog

5.3 查看网络配置

sixdog@sixiaodong dockerfile % docker inspect appsixdog
部分省略
"Networks": {
                "sixdog": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": [
                        "74c9a0faaaff"
                    ],
                    "NetworkID": "1dadf784140fe418f4bd421b63ecd06ed46a1ebf41d386fba725e454349acb86",
                    "EndpointID": "9c64f3dc6bbe49a7ffbfd699b946e55b9ff8d006591d38c2e0fe4fe86602f565",
                    "Gateway": "172.18.0.1",
                    "IPAddress": "172.18.0.3",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:12:00:03",
                    "DriverOpts": null
                }
            }

5.4 访问页面
…很遗憾,可能是外部配置的文件没有生效所以8082的画面访问失败,我删掉了使用8081再来一遍
5.5.想起来了,需要把配置文件拷贝到容器内

sixdog@sixiaodong dockerfile % docker cp ./application.properties 00581903345c:/home/application.properties
                                             Successfully copied 2.56kB to 00581903345c:/home/application.properties

5.6 进容器内查看确认内容

docker exec -i -t appsixdog /bin/bash

5.7.重启容器

sixdog@sixiaodong dockerfile % docker restart appsixdog
appsixdog

5.8 再次确认画面,报错了,调查后发现其实在容器内品mysql的ip是可以的拼通的,最后意识到,在eclipse里配置的端口是创建容器时映射到外边的3307,而容器内是3306,修改后重启容器,画面可以打开,证明联网后容器可以互相访问,但是要注意端口等信息以容器内为准,而不是创建容器时外边的端口
(四)docker:为mysql和java jar运行环境创建同一网络,容器互联,docker,java,docker,mysql文章来源地址https://www.toymoban.com/news/detail-735758.html

到了这里,关于(四)docker:为mysql和java jar运行环境创建同一网络,容器互联的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • docker-java 用Java操作docker创建容器并运行运行容器

    参考上一篇文章:Docker设置开启远程访问 Apache HttpClient 5介绍: This transport is based on Apache HttpClient library version 5, which has a great flexibility and allows us to implement all Docker-specific features and protocols required, without having to use internal APIs or anything. It has everything to become the default transport of

    2023年04月09日
    浏览(13)
  • 环境配置 | win10上配置Docker,创建容器并运行【图文详解】

    环境配置 | win10上配置Docker,创建容器并运行【图文详解】

    本文利用图文,详解了在win10上如何配置Docker,创建容器并运行,超简单版~ 电脑环境:windows10家庭版 一定要确认好版本:查看自己的电脑版本,以下操作win10家庭版和专业版都可以。 点击右侧的getDocker 即可,可以看到按钮上面对操作系统的要求为win10专业版 或企业版64位,

    2024年02月07日
    浏览(12)
  • Docker DockerFile部署java jar项目包,以及Mysql,Redis

    Docker DockerFile部署java jar项目包,以及Mysql,Redis

    Docker 运行环境要求系统为 64 位、 Linux 系统内核版本为  3.8 以上 1.1 搭建gcc环境 (gcc是编程语言译器) yum -y install gcc yum -y install gcc-c++ 1.2 安装需要的软件包 yum install -y yum-utils 1.3 装镜像仓库 因为docker的服务器是在国外, 所以有时候从仓库中下载镜像的时候会连接被拒绝或者连

    2024年02月05日
    浏览(23)
  • k8s系列-kuboard创建工作负载 docker上传java微服务jar包到仓库的过程

    1.查看环境中是否存在docker环境 docker version 2.不存在的话需要创建docker 1.环境说明 1.开发人员将java微服务打包成在linux中可运行的jar包,将其传送给运维人员 2.外网和内网可以传送文件 3.内网需要有linux服务器,并且配置了docker环境和命名空间 这里过程是基于k8s的集群kuoard控

    2024年02月05日
    浏览(9)
  • docker创建MySQL镜像,搭建主从复制环境

    docker创建MySQL镜像,搭建主从复制环境

    学习黑马的MySQL时,在主从复制、分库分表、读写分离等阶段需要多台服务器,于是尝试用docker创建镜像搭建主从复制环境。 本文基于centos7搭建mysql镜像。 参考大佬文章: link 编写mysql_file文件: 由于需要进行编辑操作,所以需要额外下载vim 编写run.sh文件 build MySQL镜像 以特权

    2024年02月07日
    浏览(12)
  • 【Docker-compose】基于Docker-compose创建LNMP环境并运行Wordpress网站平台

    【Docker-compose】基于Docker-compose创建LNMP环境并运行Wordpress网站平台

    参见使用Docker构建LNMP环境并运行Wordpress网站平台 Docker-Compose将所管理的容器分为三层,分别是 项目(project)、服务(service)以及容器(container) 。 Docker-Compose运行目录下的所有文件组成一个项目, 若无特殊指定项目名即为当前目录名 。 一个工程当中可包含多个服务,每个

    2024年02月15日
    浏览(8)
  • Docker已经创建运行启动的容器,如何修改容器中的环境变量env使长期有效

    Docker已经创建运行启动的容器,如何修改容器中的环境变量env使长期有效

    [root@jenkins ~]# docker info | grep ‘Docker Root’ Docker Root Dir: /data/docker 方式一: 方式二: docker ps -a --no-trunc |grep pdmaas 2bd5ad1314bfff05099142aae2f896fc4c3ee6b640160d27fb7c4d8ce1d5aead pdmaas:1.3.2 “bash start.sh” 4 weeks ago Exited (137) 28 minutes ago pdmaas 建议:修改前先备份 建议:修改前先备份 或 json文件

    2024年02月08日
    浏览(10)
  • 使用docker-compose.yml快速搭建开发、部署环境(nginx、tomcat、mysql、jar包、各种程序)以及多容器通信和统一配置

    image 镜像名称,可去镜像市场查找自己需要的 hostname 容器内服务名 container_name 容器名 volumes 可以把自己电脑的路径映射到容器中的文件夹中 networks 写同一个网络可以让容器之间进行通信 启动 在项目根目录的命令行中输入 docker-compose up 停止 在项目根目录的命令行中输入 d

    2024年02月12日
    浏览(15)
  • Windows Java JavaFX IntelliJ IDEA 开发环境搭建 创建工程 编译运行 打包分发 自定义运行时

    Windows Java JavaFX IntelliJ IDEA 开发环境搭建 创建工程 编译运行 打包分发 自定义运行时

    博文目录 JavaFX 官网 官网 Getting Started with JavaFX JavaFX 是一个开源的下一代客户端应用程序平台,适用于基于 Java 构建的桌面、移动和嵌入式系统。它是许多个人和公司的协作成果,目标是为开发富客户端应用程序生成一个现代、高效且功能齐全的工具包。 JavaFX 主要致力于富

    2024年02月05日
    浏览(13)
  • IDEA创建SpringBoot项目整合MyBatis-Plus时报错:For artifact {mysql:mysql-connector-java:null:jar}: The version

    IDEA创建SpringBoot项目整合MyBatis-Plus时报错:For artifact {mysql:mysql-connector-java:null:jar}: The version

    For artifact {mysql:mysql-connector-java:null:jar}: The version cannot be empty. 报错如图: pom.xml文件如图: 一直报错,明明之前导入的时候都是正常的,分析报错原因,原来是没有写版本号 添加版本号之后就正常了

    2024年02月12日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包