发布时间:2022-12-15 18:30
version: '3'
services:
# 指定服务名称
xgs:
# 指定服务使用的镜像(这个镜像是已经构建好的jar包)
image: springio/xgs:latest
# 指定容器名称
container_name: xgs-comp
# 指定服务运行的端口
ports:
- 18888:8888
redis:
image: redis:5.0.14
restart: always
container_name: my_redis
# Redis 的密码需要自己在与容器共享的配置 redis.conf 中加入,即更改配置中 requirepass yourpassword
command: redis-server /Users/mac/Documents/DockerHome/app/redis/conf/redis.conf
# 直接在其所在目录下执行 docker-compose up -d,即可在 Docker 中生成一个带密码的 Redis 容器。
command: redis-server --requirepass 123456
ports:
- "6380:6379"
volumes:
- /Users/mac/Documents/DockerHome/app/redis/data:/data
- /Users/mac/Documents/DockerHome/app/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
# 容器与宿主机时间同步
- /etc/localtime:/etc/localtime
environment:
TIME_ZONE: Asia/Beijing
mysql57:
image: mysql/mysql-server:5.7
ports:
- "3307:3306"
environment:
- MYSQL_ROOT_PASSWORD=123
volumes:
- /Users/mac/Documents/DockerHome/app/mysql/data:/var/lib/mysql
deploy:
placement:
constraints:
- node.hostname==mysqld
restart_policy:
condition: on-failure
docker-compose up -d
以下看到三个服务,springboot项目+redis+mysql 服务全部启动成功,并且port 都做好了本地映射
docker exec -it mysql1 mysql -uroot -p
#切换到mysql数据库下
use mysql
#修改root的host为%
update user set host='%' where user='root'
#刷新,否则不生效
FLUSH PRIVILEGES;
#给root进行授权,并设置密码123
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123';
#刷新,否则不生效
FLUSH PRIVILEGES;
**然后使用本机IP+映射的端口号即可访问docker中的mysql**
**文章到这里就结束了,如果有任何疑问可以私信我或者评论区下方**