docker–dockerfile练习–05–公共的jdk镜像
1、 Dockerfile创建镜像
1.1、步骤1–创建dockerfile文件
mkdir -p /home/hd/docker/docker_files/commjdk
cd /home/hd/docker/docker_files/commjdk
vim dockerFile
dockerFile 内容
FROM java:8
# 创建者
MAINTAINER feizhou <www.feizhou.com.cn>
# 创建目录
RUN mkdir -p /home/hd/config &&\
mkdir -p /home/hd/log &&\
# 添加用户和组,以确保他们的ID得到一致的分配,而不管添加了什么依赖项
groupadd -r -g 999 hd && useradd -r -g hd -u 999 hd && \
# 给予权限
chown hd:hd /home/hd -R && \
# 下载 gosu,网站很不稳定,下载不了就手动尝试一下
wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/1.7/gosu-amd64" && \
chmod +x /usr/local/bin/gosu && \
gosu nobody true && \
# 时区问题
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
ENV LANG C.UTF-8
WORKDIR /home/hd
1.2、步骤2–通过dockerfile构建镜像
cd /home/hd/docker/docker_files/commjdk
docker build --network=host -f /home/hd/docker/docker_files/commjdk/dockerFile -t commjdk:1.0 .
2、镜像操作
2.1、打包
创建镜像压缩文件
cd /home/hd/docker/docker_image_tar
docker save -o commjdk_1.0.tar commjdk:1.0
2.2、创建镜像
# 删除镜像
docker rmi commjdk:1.0
# 查看
docker images
# 创建镜像
cd /home/hd/docker/docker_image_tar
docker load -i commjdk_1.0.tar
3、构建 jar包应用
3.1、创建目录
# jar目录
mkdir -p /home/hd/jarServer
# 配置目录
mkdir -p /home/hd/jarServer/config
# 日志目录
mkdir -p /home/hd/jarServer/log
3.2、上传文件
3.3、创建软链接
ln -s /home/hd/jarServer/demo1.jar /home/hd/jarServer/server.jar
3.4、创建部署脚本
cd /home/hd/jarServer/
vim server.sh
内容
#!/bin/bash
NAME=jarServer
PORT=10086
VERSION=1.0
docker run -d \
-p ${PORT}:10086 \
--name ${NAME} \
-v /etc/localtime:/etc/localtime \
-v /home/hd/${NAME}/log/:/home/hd/log/ \
-v /home/hd/${NAME}/config/:/home/hd/config/ \
-v /home/hd/${NAME}/server.jar/:/home/hd/server.jar \
--restart=unless-stopped commjdk:${VERSION} \
bash -c "exec gosu hd java -server -Xms512m -Xmx512m -jar /home/hd/server.jar >/home/hd/log/log.log 2>&1"
3.5、执行启动脚本
chmod +x /home/hd/jarServer/server.sh
/home/hd/jarServer/server.sh
3.6、验证
http://192.168.187.150:10086/hello
4、构建 war包应用
4.1、创建目录
# war目录
mkdir -p /home/hd/warServer
# 配置目录
mkdir -p /home/hd/warServer/config
# 日志目录
mkdir -p /home/hd/warServer/log
4.2、上传文件
4.3、解压 war包
cd /home/hd/warServer/
unzip demo1.war -d warServer
4.4、创建部署脚本
cd /home/hd/warServer/
vim server.sh
内容
#!/bin/bash
NAME=warServer
PORT=10087
VERSION=1.0
docker run -d \
-p ${PORT}:10086 \
--name ${NAME} \
-v /etc/localtime:/etc/localtime \
-v /home/hd/${NAME}/log/:/home/hd/log/ \
-v /home/hd/${NAME}/config/:/home/hd/config/ \
-v /home/hd/${NAME}/warServer:/home/hd/warServer \
--restart=unless-stopped commjdk:${VERSION} \
bash -c "exec gosu hd java -cp warServer org.springframework.boot.loader.WarLauncher > /home/hd/log/log.log 2>&1"
4.5、执行启动脚本
chmod +x /home/hd/warServer/server.sh
/home/hd/warServer/server.sh
4.6、验证
http://192.168.187.150:10087/hello