docker相关环境配置
docker安装
1、安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
2、设置开机启动docker
1 | systemctl start docker # 启动docker |
3、配置阿里云镜像
进入阿里云官网搜索容器镜像服务
,选择对应的镜像加速器。
4、启动
sudo systemctl start docker
5、测试安装
sudo docker run hello-world
docker-compose安装
1、安装
1 | curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose |
2、测试
docker-compose -v
mysql8 安装
1、创建文件夹
1 | mkdir -p /opt/datas/docker/mysql/conf |
2、配置文件
/opt/datas/docker/mysql/conf/my.cnf
添加以下内容:
1 | [client] |
3、拉取最新镜像
docker pull mysql:latest
4、运行容器
1 | docker run \ |
参数说明:
–restart=unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
-p 3306:3306:映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
-e 环境参数,MYSQL_ROOT_PASSWORD设置root用户的密码
-d 后台运行
5、navicat连接
修改配置navicate才能连接
1、进入容器内部
1 | docker exec -it mysql8 /bin/bash |
2、进入mysql
1 | mysql -u root -p |
3、设置密码和所有主机都可访问
1 | ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码'; |
注意:
mysql_native_password,mysql8.x版本必须使用这种模式,否则navicate无法正确连接
4、刷新
1 | flush privileges; |
redis安装与配置
1、拉取镜像
1 | docker pull redis:latest |
2、创建文件夹
1 | mkdir /data/redis |
3、配置文件下载修改
redis官网地址:http://www.redis.cn/download.html
下载稳定版本后解压修改redis.conf配置即可。
主要修改配置如下:
1 | bind 127.0.0.1 # 注释掉这部分,使redis可以外部访问 |
修改完成后,redis.conf
文件拖入/data/redis
目录内即可。
4、启动docker redis
1 | sudo docker run -p 6379:6379 --name redis -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes |
参数说明:
-p 6379:6379:把容器内的6379端口映射到宿主机6379端口
-v /data/redis/redis.conf:/etc/redis/redis.conf:把宿主机配置好的redis.conf放到容器内的这个位置中
-v /data/redis/data:/data:把redis持久化的数据在宿主机内显示,做数据备份
redis-server /etc/redis/redis.conf:这个是关键配置,让redis不是无配置启动,而是按照这个redis.conf的配置启动
–appendonly yes:redis启动后数据持久化
5、查看是否启动成功
1 | docker ps -a |
docker构建springboot 镜像
1、打包jar
通过Maven打包jar包
2、Dockerfile文件
1 | FROM java:8 |
FROM java:8 //表示拉取java8的镜像
VOLUME /tmp //创建一个数据卷
ADD pear-admin-pro-0.2.0-SNAPSHOT.jar /jed.jar //把容器jar放到根目录下,并改名为jed.jar
ENTRYPOINT [“java”, “-Djava.security.egd=file:/dev/./urandom”,”-jar”,”jed.jar”] //springboot使用的是嵌入式tomcat容器,启动的比较慢,所以修改一下启动方式
3、文件上传镜像构建
通过winscp把jar包和Dockerfile文件传到同一目录下。
使用如下命令构建镜像:
1 | docker build -t ged . |
ged:镜像名
. :当前目录
4、镜像启动
构建完成docker images
查看即可.
启动使用如下命令:
1 | docker run -d -p 9090:9090 --name test ged |
-d: 表示后台运行
-p: 表示端口映射
–name: 给这个镜像起个别名
启动后通过docker ps -a
查看运行状态。
Nginx Proxy Manager
1、安装
新建个文件夹,然后创建个docker-compose.yml文件。
1 | nano docker-compose.yml |
配置内容如下:
1 | version: "3" |
2、构建:
1 | docker-compose up -d |
拉取完成打开81端口即可。
默认账户为:
1 | Email: admin@example.com |
yapi
1、安装
1 | git clone https://github.com/fjc0k/docker-YApi.git |
项目拉下来之后,修改docker-compose.yml
中的配置,具体如下:
基础配置
环境变量名称 | 类型 | 说明 | 示例 |
---|---|---|---|
YAPI_ADMIN_ACCOUNT | string | 管理员账号(邮箱) | admin@foo.bar |
YAPI_ADMIN_PASSWORD | string | 管理员密码 | adm1n |
YAPI_CLOSE_REGISTER | boolean | 是否关闭注册,由于 docker-YApi 已[内置相关插件](https://github.com/fjc0k/docker-YApi# 内置插件),你可在关闭注册后在后台手动添加用户 | true |
YAPI_NPM_REGISTRY | string | npm 源,目前仅在安装插件时使用,默认官方源,国内可以设为淘宝源加速 | https://registry.npm.taobao.org |
数据库配置
环境变量名称 | 类型 | 说明 | 示例 |
---|---|---|---|
YAPI_DB_SERVERNAME | string | MongoDB 服务地址 | yapi-mongo |
YAPI_DB_PORT | number | MongoDB 服务端口 | 27017 |
YAPI_DB_DATABASE | string | 使用的 MongoDB 数据库 | yapi |
YAPI_DB_USER | string | 登录 MongoDB 服务的用户名 | root |
YAPI_DB_PASS | string | 登录 MongoDB 服务的用户密码 | r00t |
YAPI_DB_AUTH_SOURCE | string | MongoDB 身份认证所用库 | admin |
YAPI_DB_CONNECT_STRING | string | 使用 MongoDB 集群时配置 | mongodb://127.0.0.100:8418,127.0.0.101:8418/yapidb?slaveOk=true |
配置完执行docker-compose up -d
启动服务。
然后,通过 http://localhost:40001
即可访问 YApi
。
2、重启
若你修改了配置,务必重启应用才能生效:
1 | docker-compose restart yapi-web |
3、升级
若 YApi
有更新,本项目应会尽快跟进,之后,你可使用以下命令升级:
1 | docker-compose pull yapi-web \ |
升级不会对原有数据造成任何影响!
详细安装作者地址:https://github.com/fjc0k/docker-YApi#%E5%9F%BA%E7%A1%80%E9%85%8D%E7%BD%AE
docker部署vue
1、配置
直接build打包后js文件过大,需要使用compression-webpack-plugin插件gzip压缩,插件版本如下:
1 | "webpack": "^5.64.4", |
插件直接install后build报错,就把node_modules整个删除重新拉。
vue.config.js配置如下:
1 | const path = require("path"); |
2、打包
1 | yarn run build-dev |
然后通过winscp把打包好的dist和Dockfile文件拖入服务器,Dockerfile配置如下:
1 | FROM nginx |
然后cd到项目目录下构建,命令如下:
1 | docker build -t jsdvue . |
fastapi部署
PS:坑
如果项目工作目录是放进app目录内,则需要把所有模块引用前面都加上app。
Dockerfile
1 | # 引入python版本 |
打包镜像
在项目根目录执行
1 | docker build -t xxx(项目名) . |
启动容器
1 | docker run -d --name xxx(项目名) -p 6789:6789 xxx(项目名) |
安装rabbitmq
安装
1 | docker pull rabbitmq |
运行mq
1 | docker run -d -p 5672:5672 -p 15672:15672 --name myrabmq 镜像id |
配置web
1 | 进入容器 |
channel无法打开问题
提示Stats in management UI are disabled on this node
1 | 进入容器 |