序言
创建基础镜其实也是需要把基础镜像拉下来(最最基本的镜像就是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
本文介绍了如何创建一个基于Centos7的基础Docker镜像,该镜像包含了JDK8。首先从最基础的Centos镜像开始,通过Dockerfile来构建新的镜像。接着,启动并进入镜像内部进行JDK1.8的配置,最后将配置后的容器打包成新的Docker镜像。
2021

被折叠的 条评论
为什么被折叠?



