Docker在Ubuntu 16.04下部署SpringBoot,Mysql,Redis,Nginx,Vue。

本文以开源项目SpringBlade和Saber为例。

1.创建自定义网络

目的是将所有使用的服务放在同一个网段中,以方便彼此通信。

docker网络创建-子网172.19 . 0 . 0/16 my network

2.Docker安装MySQL、Redis和Nginx。

(1)安装MySQL

docker拉mysql:5.7.30

cd ~

mkdir docker/mysql/{conf,logs,data} -p

cd docker/mysql

docker run-name MySQL _ blade-network = my network-IP = 172.19 . 0 . 6-p 3307:3306-v PWD/logs:/var/log/MySQL-v PWD/data:/data:rw-v $ PWD/conf/redis . conf:/etc/redis/redis . conf:ro-privileged = true-name redis-6389-d redis redis-server/etc/redis

(3)安装Nginx

你需要把Saber发布到Nginx。

码头工人拉nginx

2.码头工人包装跳羚。

3.Docker打包并发布Saber。

(1)编写nginx.conf

cd军刀

触摸nginx.conf,写下以下内容:

//nginx.conf start

用户root

worker _ process 1;

error _ log/var/log/nginx/error . log warn;

PID/var/run/nginx . PID;

事件{

工人_连接1024;

}

。spotify & lt/groupId & gt;

& ltartifactId & gtdocker file-maven-plugin & lt;/artifact id & gt;

& lt版本& gt{ project.basedir } & lt/context directory & gt;

& ltuseMavenSettingsForAuth & gttrue & lt/useMavenSettingsForAuth & gt;

& lt知识库& gt{ docker . registry . name }/{ docker . image . tag } & lt;/tag & gt;

& ltbuildArgs & gt

& ltJAR _ FILE & gttarget/{ Java . version } & lt;/source & gt;

& lttarget & gt$ { java.version } & lt/target & gt;

& lt编码& gtUTF-8 & lt;/encoding & gt;

& lt编译器参数& gt

& ltarg & gt-参数& lt/arg & gt;

& lt/compiler args & gt;

& lt/configuration & gt;

& lt/plugin & gt;

& lt/plugins & gt;

& lt/build & gt;

(2)yml配置

创建容器时,Redis和mysql应该具有与以前相同的配置:

(3)创建私有仓库(使用海港)

在harbor management界面创建一个项目blade,上传下图时添加项目路径。

(4)包装

mvn全新安装docker file:build-dmaven . test . skip = true

(5)上传到私有仓库

两种方式:

mvn dockerfile文件:推送

或者docker推10.10.0.127:10080/刀片/弹簧片:0.0 . 1。

然后就可以在港湾管理后台看到镜子了。

要拉下:

码头工人拉10.10.0 . 127:10080/刀片/跳刃:0.0.1

(6)释放

cd ~

mkdir docker/blade/app -p

cd docker/blade

docker run-itd-name blade-network = my network-IP = 172.19.0 . 7-p 9001:9001-v $ PWD/app:/mnt/10.10.0 . 127:1080/blade/spring blade:0.65448

此时,您可以通过localhost:1889访问Saber。

此外,我通过uri来区分多租户。例如,localhost:1889是一个管理租户,localhost:1889/test是一个名为test的租户。这样就避免了在登录界面填写租户id。