最近项目用到dockerfile打包部署项目,记录一下
编写dockerfile文件
FROM centos:7
MAINTAINER 企业级分布式应用服务EDAS研发团队 <edas-dev@list.alibaba-inc.com>
# 安装打包必备软件
RUN yum install -y wget unzip telnet lsof net-tools bind-utils
# 准备 JDK/Tomcat 系统变量
ENV JAVA_HOME /usr/java/latest
ENV PATH ${JAVA_HOME}/bin:$PATH
ENV ADMIN_HOME /home/admin
# 下载安装 OpenJDK
RUN yum -y install java-1.8.0-openjdk-devel
# 创建 JAVA_HOME 软链接
RUN if [ ! -L "${JAVA_HOME}" ]; then mkdir -p `dirname ${JAVA_HOME}` && ln -s `readlink -f /usr/lib/jvm/java` ${JAVA_HOME}; fi
#只改这地方jar名 下载部署 EDAS 演示 JAR 包
ADD sesp-server-dcn.jar ${ADMIN_HOME}/app/app.jar
# 增加容器内中文支持
ENV LANG="en_US.UTF-8"
ENV TZ="Asia/Shanghai"
#COPY temp.xlsx /home/sesp/temp.xlsx
# 增强 Webshell 使用体验
ENV TERM=xterm
# 将启动命令写入启动脚本 start.sh
RUN mkdir -p ${ADMIN_HOME}
RUN echo '${JAVA_HOME}/bin/java -jar ${CATALINA_OPTS} ${ADMIN_HOME}/app/app.jar'> ${ADMIN_HOME}/start.sh && chmod +x ${ADMIN_HOME}/start.sh
WORKDIR ${ADMIN_HOME}
CMD ["/bin/bash", "/home/admin/start.sh"]
参考dockerfile语法,这里不做过多解释
在linux系统中创建目录(目录根据个人需求),移动jar包和Dockerfile文件到这个目录下
开始构建docker images
命令:docker build -t sesp-server-dcn .
后面的. 不要忘记了
Successfully built 5a8df2ef7347 表示构建成功!
查看镜像:docker images
将镜像文件保存到本地目录:
docker save -o sesp-server-dcn.tar sesp-server-dcn:latest
docker常用命令:
运行docker镜像:docker run -d -p 8085:8085 4e374c05d1cb ----4e374c05d1cb为镜像id,8085端口号映射
进入docker镜像容器里面:f62dea60ddf7 启动的镜像id
docker exec -it f62dea60ddf7 sh
(1)查看已经运行的容器
docker ps
(2)查看所有的容器
docker ps -a
(3)停止容器
docker stop <容器id或者容器name>
(4)启动容器
docker start <容器id或者容器name>
(5)删除已经停止的容器
docker rm <容器id或者容器name>
(6)强制删除容器,包含没有停止的容器
docker rm -f <容器id或者容器name>
(7)进入容器
docker exec -it <容器id或者容器name> /bin/bash
(8)对应目录下运行docker-compose文件
docker-compose up -d
(9)停用移除所有容器以及网络相关
docker-compose down
(10)删除本地一个或多少镜像
docker rmi -f 镜像id //带-f表示强制删除