启动没有数据卷的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