
上两节课我们做了个apache镜像 上节课使用了-v参数 使主机文件夹映射到容器的某一文件夹 这样使我们运行真是项目时 可以把运行环境放在容器中(容器只负责运行)而这时我们的网站文件可以放在主机上 修改代码后不需要每次都更新到容器里面
这节课我们配置下JDK环境
首先看下面

配置JDK一般通过Dockerfile的方式把它拷贝到容器中(也可以通过映射的方式 但一般不这样做) 因为运行环境部分一般都固话到镜像中

首先在宿主机中安装kdk配置环境变量
centos安装过程中系统自动安装了jdk环境
参考这篇文章将系统自带的jdk删掉 重新安装jdk
rpm -qa | grep Java 命令来查询出系统自带的jdk
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64 删除系统自带的jdk
接下来cd /usr/local
来到这个目录装自己的jdk(在主机中装jdk需要下载解压版本的jdk)而容器里面是纯净的没有java环境 所以可以把下载的jdk拷贝到容器里面 这样我们在创建镜像的时候(build的时候)就把jdk拷贝到容器中
首先来到jdk官网下载对应Linux版本的jar包

xshell中在/usr/local目录
cp jdk文件名 /usr/local下
tar -zxvf jdk名 解压缩
配置环境变量
修改/etc/profile
添加如下

保存
执行source /etc/profile使刚才的配置生效
执行java -version

上面这些如何在Dockerfile中反映出来呢?
下面演示下
首先来到 ~目录
创建一个build-jdk文件夹

将上面解压的jdk拷贝到build-jdk文件夹
ls查看

接下来在创建镜像时把jdk拷贝到镜像里
首先创建Dockerfile
内容如下


这里的FROM centos:httpd是我们之前基于纯净镜像基础上安装了apache的镜像
我们在构建一个镜像时并不是把所有内容都放在一个Dockerfile中
而是通过不断的build 生成镜像 多次生成 每次可以基于不同的镜像
COPY jdk1.8.0_171 /usr/local/jdk1.8.0_171/ copy是指拷贝jdk到容器中的某一目录
ENV命令用来设置环境变量
接下来创建镜像(包括jdk)
docker build -t centos:jdk .

docker images

创建容器
docker run --privileged -d -p 8080:80 --name myjdk -v /home/bhc/myweb :/var/www/html centos:jdk

docker ps

浏览器访问

说明apache成功启动
docker exec -it myjdk /bin/bash


通过Dockerfile配合几条命令 可以创建一个新的镜像(包含apache和jdk)
网友评论