一 安装Mysql服务 1.1 拉取镜像 拉取: docker pull mysql:5.7.29 查看镜像: Docker images 1.2 在宿主机创建文件存储mysql 创建映射目录:mysql-c5 在/root/e
查看镜像: Docker images
创建映射目录:mysql-c5 在/root/export/dockertest 目录下,mkdir -p mysql-c5 ;存储mysql信息
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
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)
配置连接:
3.访问
上传前配置文件这里改成: ip改成容器中myql的服务名称,参考docker-compose中定义mysql的服务的名称。
2.连接配置改成容器中mysql的名称
上传jar包
注意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
注意结尾有一个点。说明 -f 为dockerfile的名称 spt04-dockerfile ; 04-spt-fenye-master:1.6为镜像名称。
打成镜像: docker build -f spt04-dockerfile -t 04-spt-fenye-master:1.6 .
查看镜像
、安装Docker Compose
# Compose目前已经完全支持linux、Mac 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 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 截图
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:
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
[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
通过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>
systemctl status firewalld
systemctl stop firewalld
代码地址:
来源地址: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文档到电脑,方便收藏和打印~
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0