Mac 在docker部署Spring Boot项目

539 阅读1分钟

初始化设置docker

编写daemon.json文件

vim /etc/docker/daemon.json

使用阿里云的docker加速

{
"registry-mirrors": [
"https://d8b3zdiw.mirror.aliyuncs.com"
],
"insecure-registries": [
"https://ower.site.com"
]
}

注意:其中的registry-mirrors设置的是阿里云的镜像加速地址,insecure-registries设置的是自己的私有仓库地址

重启docker

systemctl restart docker

将jar包上传到服务器 同目录下编写dockerfile文件

# 基础镜像使用java
FROM java:8
MAINTAINER jimtse
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp

#添加时区环境变量,亚洲,上海
RUN apt-get update && \
    apt-get install tzdata && \
    ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    echo "Asia/Shanghai" > /etc/timezone

ENV TZ 'Asia/Shanghai' 
ENV LANG en_US.UTF-8 
ENV LANGUAGE en_US:en 
ENV LC_ALL en_US.UTF-8

# 将jar包添加到容器中并更名
ADD sync-system-server-1.0-SNAPSHOT.jar sync-system.jar
RUN bash -c 'touch /sync-system.jar'
ENTRYPOINT ["java","-Dfile.encoding=UTF-8","-Dsun.jnu.encoding=UTF-8","-Djava.security.egd=file:/dev/./urandom","-jar","/sync-system.jar"]
#暴露端口
EXPOSE 8080

构建镜像

docker build -f dockerfile -t sync-system:1 .

运行镜像

docker run --net=host -name sync-system -it -p 8080:8080 镜像ID

进入容器

docker exec -it 容器ID /bin/bash

创建docker网络(默认桥接模式)

docker network create tse_net

连接网络到正在运行的镜像

docker network connect tse_net sync_system

编写.sh脚本,每次叠加版本

docker build  -t sync-system:1.0.1 .
docker stop sync_system
docker rm sync_system
docker run --net=host -itd --restart always --name sync_system -p 8080:8080 -v  /home/opksync/data:/home/opksync/data sync-system:1.0.1
docker rmi $(docker images | grep "none" | awk '{print $3}')