简要:Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,所以我们在CentOS 7安装Docker。
如果之前安装过旧版本的Docker,可以使用下面命令卸载:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
下面命令复制一起执行
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
yum install -y docker-ce
docker-ce为社区免费版本。稍等片刻,docker即可安装成功。
到此docker安装完毕
检查是否安装成功,如下图
docker -v
Docker应用需要用到各种端口,逐一去修改防火墙设置。非常麻烦,因此建议大家直接关闭防火墙。
关闭防火墙
systemctl stop firewalld
启动docker
systemctl start docker # 启动docker服务
systemctl stop docker # 停止docker服务
systemctl restart docker # 重启docker服务
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
检查是否安装成功,如下图
docker-compose -v
2.1:前端代码打包
执行 num run build打包前端项目得到一个dist文件夹,如下图
将此文件夹压缩成dist.zip文件
先清理缓存在打包,如下图
FROM java:8-jre
#SpringBoot项目必须使用/tmp目录
VOLUME /tmp
#将项目的jar包拷贝并命名
COPY com.suncere.air.diagnosis.jar yga.jar
RUN bash -c "touch /yga.jar"
#暴露的端口
EXPOSE 8040
#执行命令运行项目
ENTRYPOINT ["java","-jar","yga.jar","--spring.profiles.active=prod"]
#解决时间不正确的问题
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' >/etc/timezone \
mkdir /root/nginx/html
将dist.zip 解压至该目录
Unzip dist.zip
注:这里dist所存放的位置要与上面的docker-compose文件中的需挂载目录一致
创建nginx.conf配置文件
touch nginx.conf
编写nginx.conf 配置文件,具体配置如下
#user root;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
try_files $uri $uri/ /index.html last;
index index.html index.htm;
}
location @router {
rewrite ^.*$/index.html last;
}
location /bus {
proxy_pass http://192.168.3.3:8040;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
本地打包springboot项目,com.suncere.air.diagnosis.jar,并上传到linux中,同时docker-compose.yml、Dockerfile也上传到同一目录下。如下图
开始编排
cd /root
注:此处cd 是cd到docker-compose.yml目录下
docker-compose up -d
访问页面 ip加端口
先使用docker ps查看正在运行的容器,然后使用docker logs -f 容器id查看日志,如下图
私服采用的是http协议,默认不被docker信任,所以需要配置:
docker pull registry
vi /etc/docker/daemon.json
注:此处如果没有这个daemon.json文件新增即可
添加如下参数
"insecure-registries": ["http://192.168.3.3:8080"]
注:此处ip为服务器ip,需替换
systemctl daemon-reload
systemctl restart docker
这里建议将这个docker-compose.yml文件放到自己新建的目录下
例如 /root/docker
创建docker文件夹
mkdir /root/docker
创建docker-compose.yml配置文件
touch docker-compose.yml
vi /root/docker/docker-compose.yml
添加参数如下
version: '3.0'
services:
registry:
image: registry
volumes:
- ./registry-data:/var/lib/registry
ui:
image: joxit/docker-registry-ui:static
ports:
- 8080:80
environment:
- REGISTRY_TITLE= 私有仓库
- REGISTRY_URL=http://registry:5000
depends_on:
- registry
注:此配置文件中的ports中的8080与上面daemon.json中配置的端口一致
在当前目录输入
docker-compose up -d
出现如下图片则表示下载启动成功
页面输入ip加端口,例如192.168.3.3:8080
注:此处ip为服务器ip,需替换
注:推送镜像到私有仓库必须先tag,步骤如下
1:重新tag本地镜像,名称前缀为私有仓库的地址:例如 192.168.3.3:8080/
docker tag nginx:1.20.2 192.168.3.3:8080/nginx:1.20.1
2:推送镜像
docker push 192.168.3.3:8080/nginx:1.20.1
3:拉取镜像
docker pull 192.168.3.3:8080/nginx:1.20.1