• SpringBoot快速部署(1)—docker不使用nginx


    方法一:使用 link

    docker run -d --restart=always -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=qr_code_test -v /mnt/docker/files/qr_board_system/qr_code_test.sql:/docker-entrypoint-initdb.d/database.sql mysql:5.6

    docker run -dit --restart=always -p 20242:20242 -v /mnt/docker/qr_board_system:/app --name qr_board --link mysql-test:mysql classmethod/openjdk-alpine-git java -Duser.timezone=GMT+08 -Dfile.encoding=utf-8 -Dspring.config.location=/app/application.yml -jar /app/ss-board-system-0.0.1-SNAPSHOT.jar

    方法二:使用 network

    要使用Docker网络连接容器,你需要执行以下步骤:

    1. 创建一个自定义的Docker网络。
    2. 将MySQL容器连接到这个网络。
    3. 将qr_board容器连接到这个网络。

    首先,创建一个自定义的Docker网络:

    docker network create qr_network

    然后,启动MySQL容器并将其连接到这个网络:

    docker run -d --restart=always -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=qr_code_test -v /mnt/docker/qr_board_system/qr_code_test.sql:/docker-entrypoint-initdb.d/database.sql --network qr_network mysql

    最后,启动qr_board容器并将其连接到同一个网络:

    docker run -dit --restart=always -p 20242:20242 -v /mnt/docker/qr_board_system:/app --name qr_board --network qr_network classmethod/openjdk-alpine-git java -Duser.timezone=GMT+08 -Dfile.encoding=utf-8 -Dspring.config.location=/app/application.yml -jar /app/ss-board-system-0.0.1-SNAPSHOT.jar

    通过这种方式,你就可以确保两个容器能够通过网络相互通信了。

    同时,确保MySQL容器已成功启动并且MySQL服务正在运行。你可以使用以下命令检查MySQL容器的运行状态:

    docker ps -a | grep mysql

    如果MySQL容器处于运行状态,那么MySQL服务应该也在正常运行。

    网络连接是否正确:确保两个容器都连接到了同一个Docker网络。你可以使用以下命令检查容器连接到的网络:

    docker inspect mysql | grep NetworkMode

    docker inspect qr_board | grep NetworkMode

    如果两个容器的NetworkMode字段显示的是同一个网络,那么它们应该可以相互通信。

    端口映射是否正确:确认MySQL容器的端口是否正确映射到主机的端口。你可以使用以下命令检查端口映射:

    docker port mysql

    docker run -d --restart=always -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=qr_code_test -v /mnt/docker/qr_board_system/qr_code_test.sql:/docker-entrypoint-initdb.d/database.sql --network qr_network mysql

    • -d: 表示容器在后台运行(detached mode)。
    • --restart=always: 表示容器将始终自动重启,即使 Docker 守护进程被重启也是如此。
    • -p 3306:3306: 将 MySQL 容器的3306端口映射到主机的3306端口上,允许通过主机的3306端口访问 MySQL 服务。
    • --name mysql: 为容器指定一个名称,即"mysql"。
    • -e MYSQL_ROOT_PASSWORD=123456: 设置 MySQL root 用户的密码为"123456"。
    • -e MYSQL_DATABASE=qr_code_test: 创建一个名为"qr_code_test"的数据库。
    • -v /mnt/docker/qr_board_system/qr_code_test.sql:/docker-entrypoint-initdb.d/database.sql: 将宿主机上的/mnt/docker/qr_board_system/qr_code_test.sql文件挂载到容器内的/docker-entrypoint-initdb.d/database.sql路径,这样 MySQL 服务启动时会自动执行该 SQL 文件来初始化数据库。
    • --network qr_network: 将容器连接到名为"qr_network"的 Docker 网络,这样容器内的服务可以通过该网络进行通信。
    • mysql: 指定要使用的 Docker 镜像,这里使用官方提供的 MySQL 镜像。

    docker run -dit --restart=always -p 20242:20242 -v /mnt/docker/qr_board_system:/app --name qr_board --network qr_network classmethod/openjdk-alpine-git java -Duser.timezone=GMT+08 -Dfile.encoding=utf-8 -Dspring.config.location=/app/application.yml -jar /app/ss-board-system-0.0.1-SNAPSHOT.jar

    • -dit: 表示容器在后台运行,并且使用交互式终端(保持 STDIN 打开),这样你可以随时通过 docker exec 进入容器内部进行交互操作。
    • --restart=always: 表示容器将始终自动重启。
    • -p 20242:20242: 将容器的20242端口映射到主机的20242端口上,允许通过主机的20242端口访问容器内的服务。
    • -v /mnt/docker/qr_board_system:/app: 将宿主机上的/mnt/docker/qr_board_system目录挂载到容器内的/app路径,这样应用程序可以读取宿主机上的文件。
    • --name qr_board: 为容器指定一个名称,即"qr_board"。
    • --network qr_network: 将容器连接到名为"qr_network"的 Docker 网络。
    • classmethod/openjdk-alpine-git: 指定要使用的 Docker 镜像,这里使用了一个基于 Alpine Linux 的 OpenJDK 镜像。
    • java -Duser.timezone=GMT+08 -Dfile.encoding=utf-8 -Dspring.config.location=/app/application.yml -jar /app/ss-board-system-0.0.1-SNAPSHOT.jar: 在容器内运行的命令,启动了一个 Java 应用程序,指定了一些 JVM 参数和应用程序的配置文件位置,并执行了一个 JAR 包文件。

    docker exec -it mysql service mysql status

    docker exec -it mysql mysqladmin -uroot -p123456 ping

    如果端口映射正确,你应该能够看到MySQL容器的3306端口被正确映射到主机的某个端口上。

  • 相关阅读:
    5 h0255. 迷宫问题,6 h0253. 鸣人和佐助(广度优先搜索)
    SpringCloud 三种服务调用方式,你学会了吗?
    LLM大模型推理加速 vLLM;Qwen vLLM使用案例
    9月5日关键点检测学习笔记——人体骨骼点检测:自底向上
    获得文件夹下所有文件目录
    vscode px转换rem插件 px to rem & rpx & vw (cssrem)
    DFS之迭代加深、双向DFS、IDA*
    【Qt控件之QToolBox】介绍及使用
    C/C++编程刷题分享—二分法查找
    群友讨论:Pandas与MySQL求解经销商会话时间相关的问题
  • 原文地址:https://blog.csdn.net/weixin_49171365/article/details/138135696