docker--dockerfile练习--05--公共的jdk镜像

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

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
docker-compose 是一个用于定义和运行多个容器的工具,而 Dockerfile 是用于构建 Docker 镜像的文件。在使用 docker-compose 运行多个容器时,可以通过 Dockerfile 来定义每个容器所需的镜像。 以下是使用 docker-compose 结合 Dockerfile 的基本步骤: 1. 创建一个新的目录,并在该目录中创建一个名为 `docker-compose.yml` 的文件,用于定义容器组成和配置。 2. 在同一目录中,为每个容器创建一个文件夹,并在每个文件夹中创建一个 Dockerfile,用于构建该容器的镜像。可以根据需要,在 Dockerfile 中指定所需的基础镜像、软件包安装、文件复制等操作。 3. 在 `docker-compose.yml` 文件中定义每个容器的配置。使用 `services` 关键字来定义每个服务,并指定该服务使用的镜像和其他配置项。可以参考下面的示例: ```yaml version: "3" services: web: build: ./web # 指定构建 web 服务的 Dockerfile 所在路径 ports: - "8000:8000" # 指定端口映射 volumes: - ./app:/app # 挂载本地目录到容器内部 db: image: mysql:latest environment: - MYSQL_ROOT_PASSWORD=secret - MYSQL_DATABASE=mydatabase ``` 在上述示例中,定义了两个服务:`web` 和 `db`。`web` 服务使用 `./web` 目录中的 Dockerfile 构建镜像,映射本地端口 8000 到容器内部的 8000 端口,并挂载 `./app` 目录到容器内部。 `db` 服务使用官方的 `mysql:latest` 镜像,并设置了环境变量。 4. 运行 `docker-compose up` 命令来启动容器。docker-compose 会根据 `docker-compose.yml` 文件中的配置构建并启动容器组。 使用 docker-compose 结合 Dockerfile 可以更方便地定义和管理多个相关的容器,提高开发和部署的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值