docker-compose安装之前需要安装docker,docker安装教程看这篇:
https://blog.csdn.net/qq_36640395/article/details/107449652
1.经过多种安装方式测试,我们选择最稳定的方式,使用python-pip工具安装,首先安装python的依赖,执行命令:
yum -y install epel-release
2.安装 pip:
yum -y install python-pip
3.查看python-pip版本(截止作者测试时间,最新版本为20.1.1):
pip --version
4. 更新pip:
pip install --upgrade pip
5.安装docker-compose:
pip install docker-compose
6.确认是否安装成功:
docker-compose version
7.设置docker-compose为开机自启:
vim /etc/rc.d/rc.local
加入下面这行,保存:
/usr/local/bin/docker-compose -f /www/docker/trace_fecshop/docker-compose.yml up -d
(第7步可以直接使用xftp打开/etc/rc.d,进行rc.local文件的编辑,然后保存即可。)
至此docker-compose安装完成。
本篇介绍使用最简单的方式部署单机后端应用,微服务集群部署等会在后续文章介绍。
1.后端以java语言使用springBoot框架开发的项目为例,我们将项目打包成jar包形式,找个合适的位置,使用xftp上传到服务器(ctrl+c ctrl+v直接从本地copy到服务器即可)。我司习惯把项目放到mnt文件:
2.我随意建立一个名为demo-wx的文件存放我的jar包,然后新建文件名为docker-compose.yml的文件:
3.docker-compose内容为:
version: '3.7'
services:
demo-wx:
image: java:8
container_name: demo-wx
environment:
#- TZ=Asia/Shanghai
- server.port=80
ports:
- "9911:80"
volumes:
- "./:/app"
- "./logs:/logs"
#- /usr/share/fonts:/usr/share/fonts
restart: always
entrypoint: "java -Xmx1024m -Xms200m -Xmn100m -Xss5m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:-UseGCOverheadLimit -XX:+UseParallelGC -XX:ParallelGCThreads=10 -XX:+UseCompressedOops -jar /app/wx-1.0.jar"
network_mode: "bridge"
这里做一下主要内容的解释:
services和container_name为我们自己起的容器名称即可;
image为基础镜像,这里我们部署java项目,使用java8基础镜像;
server.port为容器内的端口,ports映射规则为:docker宿主机端口号:docker内端口号;
entrypoint部分,“wx-1.0.jar”换成你自己的jar包即可,其它的可以直接复制即可。
注意:docker-compose的缩进一定要注意,一个空格就可能导致无法启动项目。
4.切换到xshell输入命令,切换到我们项目目录下:
cd /mnt/demo-wx
5.执行命令,启动docker-compose:
docker-compose up -d
6.查看下容器的状态,执行命令:
docker ps -a
我们的容器已成功启动,访问地址为->你的服务器地址:映射出来的端口地址,比如我的为192.168.0.1:9911。
7.第一次下载java8基础镜像会比较慢,我们把docker默认拉取镜像的地址改为阿里云的镜像地址:
执行命令:
vim /etc/docker/daemon.json
加入此行保存即可:
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
之后我们的镜像下载速度就会快很多了。
我司前端开发使用的是vue,第一步和第二步跟前端部署流程是一样的,差别一是在前端我们上传的文件是打包出来的dist文件夹:
二是在docker-compose文件的内容:
version: '3.3'
services:
demo-front:
image: nginx:stable-alpine
container_name: deno-front
environment:
- TZ=Asia/Shanghai
ports:
- "9912:80"
volumes:
- "./dist:/usr/share/nginx/html"
- "./logs:/var/log/nginx/"
restart: always
network_mode: "bridge"
可以看到我们的基础镜像是nginx的。
放好文件后我们切换到yml目录下执行docker-compose up -d命令即可。
我们更新文件的时候需要把文件直接覆盖掉,然后执行命令:
docker-compose down
停掉容器再执行up命令启动即完成项目的更新。
到此为止docker-compose的部署教程完毕,如果项目需要重复的迭代更新,这种手动替换的方式效率会很低,我们可以使用jenkins做一键部署,jenkins相关的部署放在后续讲解。