创建Docker基础镜像

本文介绍了如何创建一个基于Centos7的基础Docker镜像,该镜像包含了JDK8。首先从最基础的Centos镜像开始,通过Dockerfile来构建新的镜像。接着,启动并进入镜像内部进行JDK1.8的配置,最后将配置后的容器打包成新的Docker镜像。

序言

创建基础镜其实也是需要把基础镜像拉下来(最最基本的镜像就是centos,rhel,Ubuntu等不同操作系统的各个版本cuiyaonan2000@163.com),然后创建一个实例,在实例里面做些设置修改,然后在打包成镜像供其它镜像使用,再打包封装成一个新镜像。

创建Centos7的基础镜像(包含jdk8

直接根据dockfile来创建一个镜像。

#创建个目录
[root@cuiyaonan2000 soft]#  mkdir centos

#进入该目录
[root@cuiyaonan2000 soft]#  cd ./centos

#创建dockfile文档
[root@cuiyaonan2000 centos]#  vi dockfile

#内容如下
FROM centos:7
# 定义时区参数
ENV TZ=Asia/Shanghai
RUN ls -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezone
# 设置编码
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
ENV LC_ALL "zh_CN.UTF-8"

ADD jdk1.8.0_271  /soft/jdk1.8.0_271

ENV JAVA_HOME /soft/jdk1.8.0_271
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin


# 安装基础yum包
RUN yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel patch net-tools iproute telnet bind-utils wget kde-l10n-Chinese glibc-common





启动镜像并进入该镜像实例内部


# 拉去好镜像后启动该镜像
# --privileged       root权限
# -d 5e35e350aded    镜像 ID
# -p 8080:80         端口映射,后面要装nginx
[root@cuiyaonan2000 centos]#  docker run --privileged -it -p 8080:80 -d 281a61b319dd /usr/sbin/init


#进入该镜像实例内部
[root@cuiyaonan2000 centos]# docker exec -it 5be8341bc03c /bin/bash

配置Jdk1.8

#首先推出容器,将本机的jdk复制到容器内的soft文件夹下
#281a61b319dd 为容器的ID
[root@cuiyaonan2000 jdk]# docker cp jdk1.8.0_271/ 281a61b319dd:/soft/


#进入容器后 设置环境变量
[cuiyaonan2000@5be8341bc03c jdk1.8.0_271]# vi /etc/profile

#增加如下内容
export JAVA_HOME=/soft/jdk1.8.0_271
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=${PATH}:${JAVA_HOME}/bin

#立即生效
[cuiyaonan2000@5be8341bc03c jdk1.8.0_271]# source /etc/profile


[cuiyaonan2000@5be8341bc03c ~]#  vi ~/.bashrc 

#增加如下内容
export JAVA_HOME=/soft/jdk1.8.0_271
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=${PATH}:${JAVA_HOME}/bin

#立即生效
[cuiyaonan2000@5be8341bc03c ~]# source ~/.bashrc

根据容器构建新的镜像

#查看运行中的容器
[root@cuiyaonan2000 centos]# docker ps

#关闭centos容器
[root@cuiyaonan2000 centos]# docker stop 5be8341bc03c


# 查看centos容器id
[root@cuiyaonan2000 centos]# docker ps -a


# 构建镜象
# 5be8341bc03c  容器名
# local-centos  镜象名
[root@cuiyaonan2000  centos]# docker commit 5be8341bc03c  local-centos

本环境打包镜像----如果有Harbor就跳过这个

[root@cuiyaonan2000  centos]# docker save -o lnmp.tar lnmp
 
# 查看
[root@cuiyaonan2000  centos]#  ll
 
-rw-------  1 root root 376077312 4月  27 17:14 lnmp.tar


#如何使用lnmp.tar

[root@cuiyaonan2000  centos]# scp root@192.168.1.113:/root/lnmp.tar /home/
 
# 查看
[root@cuiyaonan2000  centos]#  ll /home/
-rw------- 1 root root 376077312 4月  27 17:19 lnmp.tar
 
# 加载
[root@cuiyaonan2000  centos]#  docker load -i /home/lnmp.tar
 
# 查看镜象
[root@cuiyaonan2000  centos]#  docker images
 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
lnmp               latest              947680f32a52        39 minutes ago      365MB
 
# 运行容器
docker run --name lnmp -it -d lnmp /bin/bash
 
# 进入容器
[root@cuiyaonan2000  centos]#  docker exec -it lnmp /bin/bash

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cuiyaonan2000

给包烟抽吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值