docker中如何构建基础镜像呢?
下文笔者讲述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
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。