一、Docker镜像简介
Docker镜像是Docker容器的基础,可以理解为是一个只读的模板,包含了运行Docker容器所需的所有文件、配置和依赖关系。镜像可以从一个或多个Dockerfile构建而来,也可以从其他镜像构建而来。Docker镜像可以被存储、分享和重复使用,可以在不同的环境中部署相同的应用程序,从而实现快速、可靠的部署。Docker Hub是一个公共的镜像仓库,包含了数以万计的Docker镜像,开发者可以在其中找到自己需要的镜像,并在自己的项目中使用它们。
创建docker镜像主要有如下四种方式:
从已有的镜像创建:可以使用docker pull命令从Docker Hub或其他镜像仓库中拉取镜像,然后使用docker run命令创建容器。
使用Dockerfile创建:Dockerfile是一个文本文件,包含了一系列指令,用于构建Docker镜像。可以使用docker build命令根据Dockerfile创建镜像。
从容器创建:可以使用docker commit命令从一个运行中的容器创建一个新的镜像。
使用外部文件创建:可以使用docker import命令从一个本地文件或远程URL创建一个新的镜像。
博文实验内容是介绍使用Dockerfile文件创建新镜像,博文实验环境信息如下:
操作系统:centos7.9
docker版本:23.0.1
docker基础镜像:Ubuntu22.04
NGINX软件版本:1.18.0
二、创建步骤
1、镜像源说明
运行一个Ubuntu基础镜像容器,登录后我们可以确认,基础镜像中继没有wget命令,也没有查看ip地址的命令,也没有NGINX命令,时区是UTC时区。接来下我们将基于Ubuntu基础镜像,通过dockerfile的方式创建一个包含nginx并包含wget和ip addr命令的镜像文件。并给镜像设置时区为中国上海的时区。
[root@yws55 ~]# docker run -itd --name utest ubuntu:latest
c4b4e6b8e891a489f0a0c60737ce34e6a4accf13adbe4b64915ee95b915d59c9
[root@yws55 ~]# docker --version
Docker version 23.0.1, build a5ee5b1
[root@yws55 ~]# docker exec -it utest /bin/bash
root@c4b4e6b8e891:/# which wget
root@c4b4e6b8e891:/# ip addr
bash: ip: command not found
root@c4b4e6b8e891:/# nginx -t
bash: nginx: command not found
root@c4b4e6b8e891:/# date
Thu Jun 8 06:52:14 UTC 2023
2、创建dockerfile文件
编辑创建一个dockerfile文件,文件是以FROM开头,选择我们的基础镜像,RUN是我们需要执行的指令,就是在基础镜像的基础上需要执行的指令,比如设置时区,安装wget、NGINX等;EXPOSE指令是需要暴露的端口;CMD命令是容器运行的时候执行的命令,这里是启动NGINX。
————————————————
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
添加我为好友,拉您入交流群!
请使用微信扫一扫!