使用docker部署在Linux服务器上
docker简介
常用docker命令小结
这里是后面可能用到的一些命令,后面还会提到
进入容器:
docker exec -i -t fee2bbb7c9ee /bin/bash
查看进程:
docker ps
查看日志:
docker logs -f [container-id]
杀死容器:
docker kill
查看构建好的镜像
sudo docker images
强制删除镜像:
docker rmi -f
1. 构建后端镜像
首先服务器要有安装docker,具体安装方法自行百度,或者宝塔安装更方便
在后端项目创建Dockerfile
Dockerfile 用于指定构建 Docker 镜像的方法
Dockerfile 一般情况下不需要完全从 0 自己写,建议去 github、gitee 等托管平台参考同类项目(比如 springboot)
Dockerfile 编写:
- FROM 依赖的基础镜像
- WORKDIR 工作目录
- COPY 从本机复制文件
- RUN 执行命令
- CMD / ENTRYPOINT(附加额外参数)指定运行容器时默认执行的命令
FROM maven:3.5-jdk-8-alpine as builder
# Copy local code to the container image.
WORKDIR /app
COPY pom.xml .
COPY src ./src
# Build a release artifact.
RUN mvn package -DskipTests
# Run the web service on container startup.
CMD ["java","-jar","/app/target/user-center-backend-0.0.1-SNAPSHOT.jar","--spring.profiles.active=prod"]
在项目根目录当中新建Dockerfile文件,把上述代码复制进去
然后把项目文件用git clone到服务器的文件夹下(比如用了宝塔的就是/www/wwwroot)
运行命令:(后面-t是给镜像打标签,具体docker命令参考docker 菜鸟教程
//后端(没权限用sudo)
user-center-backend>> sudo docker build -t user-center-backend:v0.0.1 .
后端镜像构建成功
2.构建前端镜像
一个供参考的前端Dockerfile配置
可能的踩坑点:注意下面需要有dist文件夹和docker文件夹,这两个必须得先有(于是我们待会直接把构建好的dist文件夹放上去再交给docker构建),但好像有方法不用实现构建出dist,由于博主不了解Docker构建过程,所以这里留个坑。
FROM nginx
WORKDIR /usr/share/nginx/html/
USER root
COPY ./docker/nginx.conf /etc/nginx/conf.d/default.conf
COPY ./dist /usr/share/nginx/html/
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
在前端项目新建Dockerfile文件,复制粘贴上述内容
nginx.conf参考配置:
server {
listen 80;
# gzip config
gzip on;
gzip_min_length 1k;
gzip_comp_level 9;
gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
gzip_vary on;
gzip_disable