docker中如何构建基础镜像呢?

陈欣 Docker 发布时间:2023-12-05 21:55:53 阅读数:17654 1
下文笔者讲述docker中构建基础镜像的方法及示例分享,如下所示

docker简介

docker运行在linux环境上
    docker运行时,需借助一个基础镜像
    如:
     ubuntu,centos,
     然后再安装jdk,mysql等供系统进一步使用
==========================================
下文笔者将一步一步讲述 docker基础镜像的构建方法,如下所示

安装docker运行环境

sudo apt-get remove docker docker-engine docker.io containerd runc

拉取一个基础镜像

docker pull ubuntu

查看镜像列表

docker images

查看容器列表

docker ps -a

运行镜像

--name是容器名称
-d后台运行
-p是端口映射
-v是文件挂载
(将宿主机上的文件/文件夹和docker容器内的文件/文件夹对应)
ubuntu_jdk8u202是运行的镜像的名称
-it一般一起使用
   可以保持容器一直运行
因为容器内至少需要存在一个进程在能运行
   所以默认是运行bash。
docker run -it --name ubuntujdk8 -d -p 8081:8081 ubuntu_jdk8u202

进入容器内部

容器运行起来后,可通过命令进入容器内部
-it同上
8323d224j2424是容器id
/bin/bash的作用
   可在支持/bin/bash脚本的容器中执行相应命令
  功能为:登录到容器内部
  可通过shell和这个容器即ubuntu交互
  可运行各种Linux命令
docker exec -it 8323d224j2424 /bin/bash

从宿主机复制文件到docker

/home/download/jdk-8u202-linux-x64.tar.gz 是宿主机的文件地址
 8323d224j2424:/home/jdk 是目标容器的id和容器内的文件夹地址
  通过冒号分隔开
docker cp /home/download/jdk-8u202-linux-x64.tar.gz 8323d224j2424:/home/jdk

快速制作镜像

以上我们已经拉取了一个基础镜像
  并在基础镜像中安装了jdk等信息
  自己我们可将容器制作为一个镜像,方便复用和管理
 只需使用一下的 docker commit命令即可生成一个docker images
//制作镜像方式1
  
docker commit 8323d224j2424 ubuntu_jdk8

制作镜像方式2---使用dockerfile文件制作

dockerfile文件制作镜像
  touch命令创建一个Dockerfile文件
   然后vim编辑文件
# 建立一个新的镜像文件,配置模板:新建立的镜像是以ubuntu:latest(镜像名称)为基础模板
# 因为jdk必须运行在操作系统之上
FROM ubuntu:latest
 
# 维护者
MAINTAINER author 
 
# 创建一个新目录来存储jdk文件
RUN mkdir /usr/local/java
 
#将jdk压缩文件复制到镜像中,它将自动解压缩tar文件
ADD jre-8u202-linux-x64.tar.gz /usr/local/java/
 
# 设置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
 
# 设置环境变量
ENV JAVA_HOME /usr/local/java/jre1.8.0_202
ENV PATH $JAVA_HOME/bin:$PATH
 
# VOLUME 指定了临时文件目录为/tmp
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp

构建镜像
(-t 指定构建镜像的名称)
. 表示在当前目录读取Dockerfile文件

docker build -t ubuntujdk8 .

停止容器
stop后面可以是容器id
也可以是容器名称

docker stop ubuntujdk8u202

删除容器
rm是删除容器
rmi是删除镜像
后面可为容器id或名称

docker rm ubuntujdk8u202

删除镜像
(当无法删除时,请确认镜像对应的容器是否运行,需停止后再删除)

docker rmi ubuntujdk8
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/docker/202312/7390.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者