使用docker部署项目

使用docker部署项目

项目基于springboot开发,打包成jar包,最终部署到服务器.过程使用了docker部署.docker的安装与相关环境的安装可以参考如下两篇博客

docker安装部署

docker安装mysql与redis

部署前需将项目jar包和Dockerfile文件放在同一个文件夹下,

Dockerfile文件内容如下

FROM mcr.microsoft.com/java/jdk:8u202-zulu-centos
MAINTAINER nonoyet xxx@qq.com
VOLUME /tmp
ADD manage-api-1.0.0.jar app.jar
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  && echo 'Asia/Shanghai' >/etc/timezone \
RUN yum install kde-l10n-Chinese -y
RUN yum install glibc-common -y
RUN echo " export LANG=zh_CN.UTF-8" >> /root/.bashrc
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
RUN export LANG=zh_CN.UTF-8
RUN export LC_ALL=zh_CN.UTF-8
RUN echo "export LC_ALL=zh_CN.UTF-8"  >>  /etc/profile
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS="-server -Xms128m -Xmx512m -Xss256k"
ENV LANG zh_CN.UTF-8
ENV LC_ALL zh_CN.utf8
EXPOSE 10000
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

使用如下命令,使用该Dockerfile创建docker镜像

docker build -t manage_api(应用名称):v1(版本) .

查看构建好的镜像,获取镜像id

docker images

创建容器并运行

docker run -d -v /home/logs:/home/logs --name=manage_api(应用名称) -p 9000:9000 9c9615dbc5da(镜像id)

该处的-v /home/logs:/home/logs是将环境中的目录挂载到容器中的目录,这样的好处是容器里外使用的是同一个目录,修改也同时生效,实际生产中可以自己指定目录

查案容器运行状态

docker ps            #查看正在运行的容器
docker ps -a         #查看所有容器

停止或启动容器

docker stop 4d82d2fe192e(容器id)
docker start 4d82d2fe192e(容器id)

进入一个正在运行的容器

docker exec -it 4d82d2fe192e(容器id) /bin/bash

查看容器的运行日志

docker logs -f -t --tail=50 4d82d2fe192e(容器id)

另外删除容器

docker rm 4d82d2fe192e(容器id)

删除镜像

docker rmi 9c9615dbc5da(镜像id)