docker nginx mysql redis

发布于:2024-07-09 ⋅ 阅读:(136) ⋅ 点赞:(0)
启动没有数据卷的nginx
docker run -d -p 86:80 --name my-nginx nginx
把/etc/nginx中的配置复制到宿主机
docker cp my-nginx:/etc/nginx /home/nginxlkl

把/html 中的文件复制到宿主机
docker cp my-nginx:/etc/nginx /home/nginxlkl
删除当前镜像
docker rm -f my-nginx
重新起带数据卷的nginx
docker run -d --name my-nginx -v /home/nginxlkl/nginx:/etc/nginx -v /home/nginxlkl/html:/usr/share/nginx/html  -p 86:80 -d nginx:latest
修改nginx 配置文件需要重启
docker restart   my-nginx
    location  /gateway {
            rewrite  ^.+pers/?(.*)$ /$1 break;
            include  uwsgi_params;
            proxy_pass  http://ip:port;
            proxy_set_header x-forwarded-for  $remote_addr;
    }

 location /api {
                        proxy_pass  http://ip:port;
                        rewrite  ^/api/(.*)$ /$1 break;
                }
在这里插入代码片

mysql

安装前的思考
我们知道,容器如果不对数据做持久化(挂载数据卷),那么容器一旦重启或者删除,数据也就消失。所以我们要对MySQ数据做持久化,也就是挂载数据卷
之前在物理机上安装过MySQL的小伙伴都知道,安装完成后,我们要修改基本的配置,主要是编码。而如果要在容器内修改,那么容器删除后,配
vim my.cnf
[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect=‘SET NAMES utf8mb4’

并把这个文件放到/data/mysql/conf下。
在这里插入图片描述

3.3 运行MySQL容器

docker run -d -p 3306:3306 --privileged=true -v /data/mysql/log:/var/log/msql -v /data/mysql/data:/var/lib/mysql -v /data/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql5.7 mysql:5.7.44

新建本地挂载配置文件夹(位置随意)
1、创建文件夹(位置随意):data、conf

redis 默认配置只能够本地连接、不能进行远程访问
 需要手动挂载 redis 配置文件
mkdir -p /root/docker/redis/data

mkdir -p /root/docker/redis/conf
sudo mkdir -p /mydata/redis/conf

sudo touch /mydata/redis/conf/redis.conf

2、新增配置文件:redis.conf

redis 配置文件挂载:以配置文件方式启动redis 容器
挂载:将宿主的文件和容器内部目录相关联、相互绑定、
	在宿主机内修改文件的话也随之修改容器内部文件

创建文件:

sudo touch /mydata/redis/conf/redis.conf

redis.conf内容配置:

#bind 127.0.0.1 //允许远程连接
protected-mode no
appendonly yes //持久化
requirepass 2419 //密码 

3、挂载redis 的持久化文件(为了数据的持久化)

配置文件:
	liunx 下redis.conf文件位置: /home/redis/myredis/redis.conf
	liunx 下redis的data文件位置 : /home/redis/myredis/data
	位置随便选择
不存在就直接创建/home/redis/myredis 文件夹:
		命令:mkdir -p /home/redis/myredis

创建/启动Redis容器(创建镜像实例)

docker run --name my_redis -p 6379:6379 \ 
-v /root/docker/redis/data:/data \ 
-v /root/docker/redis/conf/redis.conf:/etc/redis/redis.conf \ 
-d redis redis-server /etc/redis/redis.conf

java
在这里插入图片描述
dockerfile

FROM openjdk:11-jdk
ENV BASE_PATH=/api
WORKDIR $BASE_PATH
# 将宿主机上的 ssm-docker-0.0.1-SNAPSHOT.jar 移动到 /cyk/apps 目录下并改名为 apps.jar
ADD app.jar $BASE_PATH/apps.jar
EXPOSE 7005
ENTRYPOINT ["java", "-jar"]
CMD ["apps.jar"]
docker build -t spring1 .
docker run -t -d -p 7008:7005  spring1