iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >docker-compose实现微服务jar+mysql的容器服务发布(经典版)
  • 706
分享到

docker-compose实现微服务jar+mysql的容器服务发布(经典版)

dockermysql容器 2023-09-18 18:09:28 706人浏览 泡泡鱼
摘要

一  安装Mysql服务 1.1 拉取镜像 拉取: docker  pull  mysql:5.7.29 查看镜像: Docker  images 1.2 在宿主机创建文件存储mysql 创建映射目录:mysql-c5  在/root/e

一  安装Mysql服务

1.1 拉取镜像

拉取: docker  pull  mysql:5.7.29

查看镜像: Docker  images

1.2 在宿主机创建文件存储mysql

创建映射目录:mysql-c5  在/root/export/dockertest 目录下,mkdir  -p  mysql-c5  ;存储mysql信息

 1.3  创建容器

docker run -id --privileged=true \-p 3306:3306 \--name=c5_mysql \-v $PWD/conf:/etc/mysql/conf.d \-v $PWD/logs:/logs \-v $PWD/data:/var/lib/mysql \-e MYSQL_ROOT_PASSWord=123456 \mysql:5.7.29

1.4 进入容器

root@localhost dockertest]# docker exec -it c5_mysql /bin/bash
root@5d6f5def65ce:/#  mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.29 MySQL CommUnity Server (GPL)

Copyright (c) 2000, 2020, oracle and/or its affiliates. All rights reserved.

Oracle is a reGIStered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| infORMation_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

1.5  远程连接

二  微服务工程上传并发布成镜像

2.1 微服务工程创建

配置连接:

 3.访问

2.2 将jar包上传服务器

上传前配置文件这里改成: ip改成容器中myql的服务名称,参考docker-compose中定义mysql的服务的名称。

 2.连接配置改成容器中mysql的名称

上传jar包

2.3 dockerfile文件的编写

注意dockerfile和jar包要放到同一个目录下,这里是在/root/export/dockertest/docker-compose-dir中

编写dockerfile的内容: vi  spt04-dockerfile  

     这里的dockerfile的名称为:spt04-dockerfile  ;内容如下:

#基础镜像使用java#FROM java:8FROM openjdk:8#作者MaiNTAINER ljf#volume 制定临时文件目录为/tmp,VOLUME /tmp#将jar包添加到容器中并更名为spt-docker。jarADD  04-spt-mybaitsplus-fenye-1.0-SNAPSHOT.jar 04-spt-fenye.jar#运行jar包ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","04-spt-fenye.jar"]#暴露端口8080作为微服务EXPOSE 8084

2.4 通过dockefile生成镜像

注意结尾有一个点。说明 -f 为dockerfile的名称 spt04-dockerfile  ; 04-spt-fenye-master:1.6为镜像名称。

打成镜像:  docker build  -f spt04-dockerfile  -t 04-spt-fenye-master:1.6 .

查看镜像

三  docker-compose 下载安装 

3.1 docker-compose的安装

、安装Docker Compose
# Compose目前已经完全支持linuxMac OS和windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。 
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
2. 设置文件可执行权限 
chmod +x /usr/local/bin/docker-compose
3.查看版本信息 
docker-compose -version

卸载Docker Compose
 二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose

 四 创建docker网络

4.1 创建docker网络

创建网络,让容器之间可以进行互通访问。

查看网络   docker network  ls

创建网络 docker network create ljf_net

[root@localhost docker-compose-dir]# docker network lsNETWORK ID          NAME                DRIVER              SCOPEfe668cbe4240        bridge              bridge              localead95c34bb4d        host                host                local2452f37044ee        none                null                local[root@localhost docker-compose-dir]# docker network create ljf_netd9e1593ce665508aa690393a6976ce4165669cbee93c65645fc6056d8765b737[root@localhost docker-compose-dir]# docker network lsNETWORK ID          NAME                DRIVER              SCOPEfe668cbe4240        bridge              bridge              localead95c34bb4d        host                host                locald9e1593ce665        ljf_net             bridge              local2452f37044ee        none                null                local

2 截图

五 编写docker-compose文件

5.1 编写docker-compose文件

jar包,dockerfile,docker-compose 这3个文件,需要在同一级目录下。

 2.编写docker-compose的内容

1. - /app/microService:/data    不用自己创建,执行后会自动在宿主机和docker自动创建

2. privileged: true   防止容器中mysql没有操作目录的权限而设置

3.networks:
  ljf_net:  

 自己创建,目的让jar包能够访问到myql容器中的服务。

4.通过命令docker-compose config -q  可以判断所写文件格式是否有问题

version: '3'services:  microService:    image: 04-spt-fenye-master:1.6    container_name: spt01    ports:      - "8084:8084"    volumes:      - /app/microService:/data    networks:      - ljf_net    depends_on:      - mysql  mysql:    image: mysql:5.7.29    environment:      MYSQL_ROOT_PASSWORD: '123456'      MYSQL_ALLOW_EMPTY_PASSWORD: 'no'      MYSQL_DATABASE: 'test-db'      MYSQL_USER: 'root'      MYSQL_PASSWORD: '123456'    ports:      - "3306:3306"    volumes:      - /app/mysql/db:/var/lib/mysql      - /app/mysql/conf/my.cnf:/etc/my.cnf      - /app/mysql/init:/docker-entrypoint-initdb.d    privileged: true    container_name: "mysql07"    command: --default-authentication-plugin=mysql_native_password #解决外部无法访问    networks:      - ljf_netnetworks:  ljf_net:

5.2 执行docker-compose命令一键启动

1)执行前确保服务中docker的服务启动。

查看docker的服务: systemctl    status  docker

启动docker服务:systemctl start  docker

 2) 一键启动

[root@localhost docker-compose-dir]# docker-compose up -d
Creating mysql07 ... done
Creating spt01   ... done
[root@localhost docker-compose-dir]# docker ps -a
CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS                     PORTS                               NAMES
ac39b0f18163        04-spt-fenye-master:1.6   "java -Djava.secur..."   8 seconds aGo       Up 6 seconds               0.0.0.0:8084->8084/tcp              spt01
e8710c0dfb42        mysql:5.7.29              "docker-entrypoint..."   8 seconds ago       Up 7 seconds               0.0.0.0:3306->3306/tcp, 33060/tcp   mysql07
5d6f5def65ce        mysql:5.7.29              "docker-entrypoint..."   20 hours ago        Exited (0) 3 hours ago                                         c5_mysql
14e0070ee163        spt-docker-master:1.6     "java -Djava.secur..."   24 hours ago        Exited (143) 3 hours ago                                       c11
b3ad03aefa87        xfce-tools-base           "run.sh"                 2 years ago         Exited (255) 2 years ago   0.0.0.0:5904->5901/tcp              jolly_hawking
341af5f795b4        xfce-tools-base           "run.sh"                 2 years ago         Exited (255) 2 years ago   0.0.0.0:5903->5901/tcp              sad_turing
a3857988c03d        xfce-tools-base           "run.sh"                 2 years ago         Exited (255) 2 years ago   0.0.0.0:5902->5901/tcp              elastic_hoover
bb9e19cbfd14        xfce-tools-base           "run.sh"                 2 years ago         Exited (255) 2 years ago   0.0.0.0:5901->5901/tcp              silly_kalam

5.3 查看容器log日志

[root@localhost docker-compose-dir]# docker ps -a
CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS                     PORTS                               NAMES
ac39b0f18163        04-spt-fenye-master:1.6   "java -Djava.secur..."   17 seconds ago      Up 15 seconds              0.0.0.0:8084->8084/tcp              spt01
e8710c0dfb42        mysql:5.7.29              "docker-entrypoint..."   17 seconds ago      Up 16 seconds              0.0.0.0:3306->3306/tcp, 33060/tcp   mysql07
5d6f5def65ce        mysql:5.7.29              "docker-entrypoint..."   20 hours ago        Exited (0) 3 hours ago                                         c5_mysql
14e0070ee163        spt-docker-master:1.6     "java -Djava.secur..."   24 hours ago        Exited (143) 3 hours ago                                       c11
b3ad03aefa87        xfce-tools-base           "run.sh"                 2 years ago         Exited (255) 2 years ago   0.0.0.0:5904->5901/tcp              jolly_hawking
341af5f795b4        xfce-tools-base           "run.sh"                 2 years ago         Exited (255) 2 years ago   0.0.0.0:5903->5901/tcp              sad_turing
a3857988c03d        xfce-tools-base           "run.sh"                 2 years ago         Exited (255) 2 years ago   0.0.0.0:5902->5901/tcp              elastic_hoover
bb9e19cbfd14        xfce-tools-base           "run.sh"                 2 years ago         Exited (255) 2 years ago   0.0.0.0:5901->5901/tcp              silly_kalam
[root@localhost docker-compose-dir]# docker logs spt01

5.4 登录初始化数据表数据

通过navicate连接后,新建表tb_user表和添加数据。

 2.通过命令进入容器查看

[root@localhost docker-compose-dir]# docker ps -a

CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS                       PORTS                               NAMES

7c18286e5e68        04-spt-fenye-master:1.6   "java -Djava.secur..."   2 minutes ago       Exited (1) 2 minutes ago                                         spt01

9c79cd96ec6e        mysql:5.7.29              "docker-entrypoint..."   2 minutes ago       Up 2 minutes                 0.0.0.0:3306->3306/tcp, 33060/tcp   mysql07

5d6f5def65ce        mysql:5.7.29              "docker-entrypoint..."   17 hours ago        Exited (0) 3 minutes ago                                         c5_mysql

14e0070ee163        spt-docker-master:1.6     "java -Djava.secur..."   21 hours ago        Exited (143) 3 minutes ago                                       c11

b3ad03aefa87        xfce-tools-base           "run.sh"                 2 years ago         Exited (255) 2 years ago     0.0.0.0:5904->5901/tcp              jolly_hawking

341af5f795b4        xfce-tools-base           "run.sh"                 2 years ago         Exited (255) 2 years ago     0.0.0.0:5903->5901/tcp              sad_turing

a3857988c03d        xfce-tools-base           "run.sh"                 2 years ago         Exited (255) 2 years ago     0.0.0.0:5902->5901/tcp              elastic_hoover

bb9e19cbfd14        xfce-tools-base           "run.sh"                 2 years ago         Exited (255) 2 years ago     0.0.0.0:5901->5901/tcp              silly_kalam

[root@localhost docker-compose-dir]# docker exec -it mysql07 /bin/bash

root@9c79cd96ec6e:/# mysql -uroot -p123456

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 13

Server version: 5.7.29 MySQL Community Server (GPL)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

| test-db            |

+--------------------+

5 rows in set (0.01 sec)

mysql> use test-db;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> use test-db;

Database changed

mysql> show tables;

+-------------------+

| Tables_in_test-db |

+-------------------+

| tb_user           |

+-------------------+

1 row in set (0.00 sec)

mysql>

测试 访问

6.1 关闭防护墙

systemctl  status  firewalld

systemctl   stop  firewalld

6.2 进行访问

 代码地址:

来源地址:https://blog.csdn.net/u011066470/article/details/131562191

您可能感兴趣的文档:

--结束END--

本文标题: docker-compose实现微服务jar+mysql的容器服务发布(经典版)

本文链接: https://www.lsjlt.com/news/412044.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle怎么查询当前用户所有的表
    要查询当前用户拥有的所有表,可以使用以下 sql 命令:select * from user_tables; 如何查询当前用户拥有的所有表 要查询当前用户拥有的所有表,可以使...
    99+
    2024-05-15
    oracle
  • oracle怎么备份表中数据
    oracle 表数据备份的方法包括:导出数据 (exp):将表数据导出到外部文件。导入数据 (imp):将导出文件中的数据导入表中。用户管理的备份 (umr):允许用户控制备份和恢复过程...
    99+
    2024-05-15
    oracle
  • oracle怎么做到数据实时备份
    oracle 实时备份通过持续保持数据库和事务日志的副本来实现数据保护,提供快速恢复。实现机制主要包括归档重做日志和 asm 卷管理系统。它最小化数据丢失、加快恢复时间、消除手动备份任务...
    99+
    2024-05-15
    oracle 数据丢失
  • oracle怎么查询所有的表空间
    要查询 oracle 中的所有表空间,可以使用 sql 语句 "select tablespace_name from dba_tablespaces",其中 dba_tabl...
    99+
    2024-05-15
    oracle
  • oracle怎么创建新用户并赋予权限设置
    答案:要创建 oracle 新用户,请执行以下步骤:以具有 create user 权限的用户身份登录;在 sql*plus 窗口中输入 create user identified ...
    99+
    2024-05-15
    oracle
  • oracle怎么建立新用户
    在 oracle 数据库中创建用户的方法:使用 sql*plus 连接数据库;使用 create user 语法创建新用户;根据用户需要授予权限;注销并重新登录以使更改生效。 如何在 ...
    99+
    2024-05-15
    oracle
  • oracle怎么创建新用户并赋予权限密码
    本教程详细介绍了如何使用 oracle 创建一个新用户并授予其权限:创建新用户并设置密码。授予对特定表的读写权限。授予创建序列的权限。根据需要授予其他权限。 如何使用 Oracle 创...
    99+
    2024-05-15
    oracle
  • oracle怎么查询时间段内的数据记录表
    在 oracle 数据库中查询指定时间段内的数据记录表,可以使用 between 操作符,用于比较日期或时间的范围。语法:select * from table_name wh...
    99+
    2024-05-15
    oracle
  • oracle怎么查看表的分区
    问题:如何查看 oracle 表的分区?步骤:查询数据字典视图 all_tab_partitions,指定表名。结果显示分区名称、上边界值和下边界值。 如何查看 Oracle 表的分区...
    99+
    2024-05-15
    oracle
  • oracle怎么导入dump文件
    要导入 dump 文件,请先停止 oracle 服务,然后使用 impdp 命令。步骤包括:停止 oracle 数据库服务。导航到 oracle 数据泵工具目录。使用 impdp 命令导...
    99+
    2024-05-15
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作