Docker 部署

60 阅读2分钟
  • 外网 IP:39.96.45.160
  • 内网 IP:192.168.1.101

安装 Docker

## ① 使用 DaoCloud 的 Docker 高速安装脚本。参考 https://get.daocloud.io/#install-docker
curl -sSL https://get.daocloud.io/docker | sh
## ② 设置 DaoCloud 的 Docker 镜像中心,加速镜像的下载速度。参考 https://www.daocloud.io/mirror
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
## ③ 启动 Docker 服务
systemctl start docker

1、启动服务 systemctl start 服务名

2、停止服务 systemctl stop 服务名

3、重启服务 systemctl restart 服务名

4、查看服务是否已启动 systemctl is-active 服务名

5、查看服务的状态 systemctl status 服务名

6、启用开机自启动服务 systemctl enable 服务名

7、停用开机自启动服务 systemctl disable 服务名

8、查看服务是否为开机自启动 systemctl is-enabled 服务名

9、只重启正在运行中的服务 systemctl try-restart 服务名

10、显示所有的服务状态—空格翻页 q推出 systemctl list-units --type service --all

11、查看启动成功的服务列表 systemctl list-unit-files|grep enabled

12、查看启动失败的服务列表 systemctl --failed

13、查看所有服务的状态—空格翻页 q推出 systemctl list-unit-files --type service

删除docker(get.daocloud.io/#install-do…

# 最终要删除该目录
rm -fr /var/lib/docker/

服务部署:

在 Linux 服务器上创建 /root/nice/helloword

上传jar包。打包:mvn clean package -Dmaven.test.skip=true(跳过单元测试的执行)

 /root/nice/helloword目录下,新建 Dockerfile 文件,用于制作后端项目的 Docker 镜像。

FROM openjdk:8-jre

## 创建目录,并使用它作为工作目录
RUN mkdir -p /nice-server
WORKDIR /nice-server

## 将后端项目的 Jar 文件,复制到镜像中
COPY nice-server-1.0.0.jar nice-server.jar
ADD bootstrap/target/nice-server-1.0.0.jar /nice-server/nice-server.jar

## 暴露后端项目的 8088 端口
EXPOSE 8088

## 设置 TZ 时区
## 设置 JAVA_OPTS 环境变量,可通过 docker run -e "JAVA_OPTS=" 进行覆盖
ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms512m -Xmx1024m"

## 启动后端项目
ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar nice-server.jar

## 如果在dockerfile里出现多个CMD,只有最后一个CMD会生效(https://blog.csdn.net/xyz/article/details/118269856)
CMD ["java", "-jar", "-Duser.timezone=Asia/ShangHai", "-Xms512M", "-Xmx1024M", "bootstrap.jar"]

执行如下命令,构建名字为 nice-server 的 Docker 镜像。

cd /root/nice/helloword
使用当前目录的 Dockerfile 创建镜像,标签为 runoob/ubuntu:v1。
docker build -t nice-server .

在 /root/nice/helloword 目录下,新建 Shell 脚本 deploy.sh,使用 Docker 启动后端项目。

脚本:

#!/bin/bash
set -e

## 第一步:删除可能启动的老 nice-server 容器 
echo "开始删除 nice-server 容器"
docker stop nice-server || true
docker rm nice-server || true
echo "完成删除 nice-server 容器"

## 第二步:启动新的 nice-server 容器 \
echo "开始启动 nice-server 容器"
docker run -d \
--name nice-server \
-p 8088:8088 \
-e "SPRING_PROFILES_ACTIVE=dev" \
-v /root/nice/nice-server:/root/logs/ \
nice-server
echo "正在启动 nice-server 容器中,需要等待 60 秒左右"

应用日志文件,挂载到服务器的的 `/root/nice/nice-server` 目录下
通过 `SPRING_PROFILES_ACTIVE` 设置为 `dev` 开发环境

执行 docker logs nice-server 命令,查看启动日志。看到如下内容,说明启动完成

使用 docker logs nice-server | grep 8088