#1.拉取相关镜像docker pull nginx
docker pull redis:6.2.6
docker pull java:8
docker pull mysql:5.7
#(ps:以上镜像版本自己根据实际需求选)#2.部署运行mysqlmkdir-p /mnt/docker/mysql/conf
mkdir-p /mnt/docker/mysql/logs
mkdir-p /mnt/docker/mysql/data
cd /mnt/docker/mysqldocker run -id\-p3307:3306 \--name=c_mysql \-v /mnt/docker/mysql/conf:/etc/mysql/conf.d \-v /mnt/docker/mysql/logs:/logs \-v /mnt/docker/mysql/data:/var/lib/mysql \-eMYSQL_ROOT_PASSWORD=root \
mysql:5.7#3.mysql配置文件并设置远程连接
在/mnt/docker/mysql/conf 创建my.cnf[mysqld]## Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.# innodb_buffer_pool_size = 128M## Remove leading # to turn on a very important data integrity option: logging# changes to the binary log between backups.# log_bin## Remove leading # to set options mainly useful for reporting servers.# The server defaults are faster for transactions and fast SELECTs.# Adjust sizes as needed, experiment to find the optimal values.# join_buffer_size = 128M# sort_buffer_size = 2M# read_rnd_buffer_size = 2Mdatadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
character-set-server=utf8
# Disabling symbolic-links is recommended to prevent assorted security risks# symbolic-links=0lower_case_table_names=1
pid-file=/var/run/mysqld/mysqld.pid
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION#查看是否配置成功docker logs -f c_mysql
# 去查看mysql对应的docker容器ip地址docker inspect c_mysql
#找到IPAddress,配置到项目中的database-url中ip,因为这是mysql在docker容器中的ip#设置远程连接dockerexec-it mysql-container bashmysql -u root -pUSE mysql;#创建允许远程访问的用户或修改root用户允许远程访问:
CREATE USER'your_user'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
1.3 部署redis服务,持久化配置(推荐,方便将持久化内容同步到mysql中)
#1.创建配置映射文件mkdir-p /mnt/docker/redis/conf
cd /mnt/docker/redis/conf
vim redis.conf#2.修改配置文件redis.conf# bind 127.0.0.1 注释掉这部分,使redis可以外部访问daemonize no #用守护线程的方式启动requirepass 123456#给redis设置密码appendonly yes#redis持久化 默认是notcp-keepalive 300#防止出现远程主机强迫关闭了一个现有的连接的错误 默认是300#3.创建redis容器并启动docker run --name redis -p6379:6379 \-v /mnt/docker/redis/data:/data \-v /mnt/docker/redis/conf/redis.conf:/etc/redis/redis.conf \-d redis:6.2.6 redis-server /etc/redis/redis.conf#4.尝试进入容器,已设置密码的进入方式## 进入Redis容器dockerexec-it redis /bin/bash
## 通过密码进入Redis控制台
redis-cli -a123456#注意:如果提示未设置密码,原因是因为配置文件内不能包含中文注释#查看IPAddress地址并配置到项目中:docker inspect redis
docker-compose up -d#代表后台启动docker-compose down #关闭docker-compose.yml中的容器#注意先查看刚刚创建的后端服务blog有没报错,然后查看nginx的日志找问题,没问题的话说明以上配置成功。docker logs blog
docker logs nginx