Docker之根据基础镜像生成新镜像

这篇具有很好参考价值的文章主要介绍了Docker之根据基础镜像生成新镜像。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Docker镜像简介

  Docker镜像是Docker容器的基础,可以理解为是一个只读的模板,包含了运行Docker容器所需的所有文件、配置和依赖关系。镜像可以从一个或多个Dockerfile构建而来,也可以从其他镜像构建而来。Docker镜像可以被存储、分享和重复使用,可以在不同的环境中部署相同的应用程序,从而实现快速、可靠的部署。Docker Hub是一个公共的镜像仓库,包含了数以万计的Docker镜像,开发者可以在其中找到自己需要的镜像,并在自己的项目中使用它们。
  Docker镜像的优点包括:

  1. 节省时间和成本:Docker镜像可以在不同的环境中使用,避免了重复构建和配置环境的工作,从而节省了时间和成本。

  2. 提高可靠性:Docker镜像具有可移植性和一致性,可以确保应用程序在不同的环境中的运行一致性。

  3. 提高安全性:Docker镜像可以在镜像构建时添加安全性检查和验证,确保应用程序的安全性。

  创建docker镜像主要有如下四种方式:

  1. 从已有的镜像创建:可以使用docker pull命令从Docker Hub或其他镜像仓库中拉取镜像,然后使用docker run命令创建容器。

  2. 使用Dockerfile创建:Dockerfile是一个文本文件,包含了一系列指令,用于构建Docker镜像。可以使用docker build命令根据Dockerfile创建镜像。

  3. 从容器创建:可以使用docker commit命令从一个运行中的容器创建一个新的镜像。

  4. 使用外部文件创建:可以使用docker import命令从一个本地文件或远程URL创建一个新的镜像。

  博文实验内容是根据基础镜像,安装自建服务所需的软件后创建新的镜像,博文实验环境信息如下:

  • 操作系统:centos7.9
  • docker版本:23.0.1

二、安装步骤

1、安装docker

  docker的安装可以参考博文Linux之docker安装。也可以使用如下方式安装指定版本的docker。

#YUM软件包更新到最新
[root@s142 ~]# yum update
#卸载旧版本
[root@s142 ~]# yum remove docker docker-common docker-selinux docker-engine
#安装依赖
[root@s142 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
#设置yum源
[root@s142 ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#查看仓库中的docker版本
[root@s142 ~]# yum list docker-ce --showduplicates | sort -r
#安装指定版本docker,使用yum install -y docker-ce默认安装最新稳定版
[root@s142 ~]# yum install -y docker-ce-23.0.1

2、启动docker服务

[root@yws55 ~]# systemctl start docker

3、下载Ubuntu基础镜像

[root@yws55 ~]# docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
dbf6a9befcde: Pull complete
Digest: sha256:dfd64a3b4296d8c9b62aa3309984f8620b98d87e47492599ee20739e8eb54fbf
Status: Downloaded newer image for ubuntu:latest

4、启动Ubuntu容器

[root@yws55 ~]# docker run -itd --name utest ubuntu
b931c65c888a2afa00f98e1a38c191602dc5e0ef92891e556243d025f84c719a
[root@yws55 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
03cc479b5387 ubuntu “/bin/bash” 18 seconds ago Up 17 seconds utest

5、登录Ubuntu容器

[root@yws55 ~]# docker exec -it utest /bin/bash
root@03cc479b5387:/#

6、安装基础命令

  基础镜像没有ip addr、netstat、wget等基础命令,我们先更新apt-get源,然后安装这些基础命令。

root@03cc479b5387:/# apt-get update
root@03cc479b5387:/# apt-get install -y iproute2
root@03cc479b5387:/# apt-get install -y net-tools
root@03cc479b5387:/# apt-get install -y wget

6、创建一个普通用户

  安装anaconda3要求使用普通用户安装,我们先创建一个普通用户。

root@03cc479b5387:/# useradd test -m -s /bin/bash

7、基础镜像内安装anconda3

  在容器内下载并安装anconda3,安装完成后可以找到conda命令说明安装成功。

root@03cc479b5387:/# su - test
test@03cc479b5387:~$ wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2020.02-Linux-x86_64.sh
test@03cc479b5387:~$ chmod u+x Anaconda3-2020.02-Linux-x86_64.sh
test@03cc479b5387:~$ sh Anaconda3-2020.02-Linux-x86_64.sh

test@03cc479b5387:~$ source ~/.bashrc
(base) test@03cc479b5387:~$ which conda
/home/test/anaconda3/bin/conda

8、生成新镜像

  使用命令docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]生成一个新的镜像。生成后可以使用docker images命令查看,已经更新到镜像列表中。
基础镜像,docker,docker,容器,运维

#docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a:提交镜像的作者
-m:镜像说明
-p:在提交镜像时将容器暂停
-c:以Dockerfile方式创建镜像
root@vanfonuat:~# docker commit -a “wuhs@123.com” -m “conda install” 03cc479b5387 ubuntu:20.04_conda

9、保存镜像为tar文件

[root@yws55 ~]# docker save ubuntu_conda > ubuntu_conda.tar
[root@yws55 ~]# ll
total 4008284
-rw-------. 1 root root 1419 Mar 16 11:40 anaconda-ks.cfg
-rw-r–r-- 1 root root 4104475648 May 10 11:51 ubuntu_conda.tar

10、镜像拷贝到其他主机

[root@yws55 ~]# scp ubuntu_conda.tar 192.168.0.142:/tmp/

11、加载镜像

  使用docker load命令加载tar包文件到docker中。

[root@s142 ~]# docker load < /tmp/ubuntu_conda.tar
基础镜像,docker,docker,容器,运维

12、使用自建镜像创建一个容器

[root@s142 ~]# docker run -itd --name ucondatest ubuntu_conda
4b72bc2ec581837491c4869bd832e16ac40f5f7e00d0c9e98cb2735a9ec46140

13、登录容器查看是否已安装anaconda3

  登录容器后,可以看到以新的镜像启动的容器已经包含了我们前面所安装的配置、命令、软件。使用这种方式可以帮助快速完成离线部署。
基础镜像,docker,docker,容器,运维文章来源地址https://www.toymoban.com/news/detail-729716.html

到了这里,关于Docker之根据基础镜像生成新镜像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker容器------镜像,容器基础命令

    目录  一,docker镜像  1,查看docker版本  2,获取镜像 2.1查看下载到本地的所有镜像   2.2 获取镜像信息 2.3 添加镜像标签(上传镜像到仓库)   2.4 镜像导出  2.5 镜像导入  2.6 ,删除镜像  2.7 上传镜像 ​编辑 二,docker 容器操作 1,查看容器 2,容器创建----docker create  

    2024年02月05日
    浏览(53)
  • 【Docker系列】容器基础、Docker镜像管理

    个人名片: 对人间的热爱与歌颂,可抵岁月冗长🌞 Github👨🏻‍💻:念舒_C.ying CSDN主页✏️:念舒_C.ying 个人博客🌏 :念舒_C.ying 2.1 Docker镜像查找 命令查找 docker官网查找 2.2 Docker镜像管理 拉取MySQL镜像 查看本地镜像 镜像加速(阿里云) Daocloud镜像站加速 镜像删除 2.3 容器

    2024年01月25日
    浏览(46)
  • docker基础3——制作镜像(基于容器)

    镜像可以理解为应用程序的集装箱,而docker用来装卸集装箱。 docker镜像含有启动容器所需要的文件系统及其内容,所以镜像是用于创建并启动容器。 docker镜像采用分层构建机制,最底层为bootfs,其上为rootfs。 bootfs:用于系统引导的文件系统,包括bootloader和kernel,容器启动完

    2024年02月07日
    浏览(55)
  • linux下docker安装、镜像下载、镜像基础操作、容器基础操作

    目录 一、环境准备 1、开启虚拟化 2、关闭防火墙 3、yum仓库获取阿里源(清华、京东都可以) 4、确保能ping到外网 二、安装docker 1、yum安装docker 2、启动docker并设置开机自启 3、安装docker-ce阿里镜像加速器 三、docker基本操作 1、查看版本 2、查看详细信息 四、镜像操作 1、do

    2024年02月06日
    浏览(52)
  • Docker 基础实战:环境搭建、容器、仓库、镜像

    可以使用 docker help 或者 man docker-run 来获取完整的 Docker 命令列表,本文只介绍一些常用的命令与参数。 考虑到安装流程过于繁琐,在 CentOS 中,可以使用官方提供的脚本来快速安装 Docker: 可以从 https://get.docker.com/ 查看支持的操作系统。 当安装完毕后,设置开机自启动 Doc

    2024年02月16日
    浏览(53)
  • docker 常用命令大全(基础、镜像、容器、数据卷)

    镜像的名称组成: 镜名称一般分两部分组成:[repository]:[tag]。 在没有指定tag时,默认是latest,代表最新版本的镜像 如图: 这里的mysql就是repository,5.7就是tag,合一起就是镜像名称,代表5.7版本的MySQL镜像。 常见的镜像操作命令如图: 从DockerHub中拉取一个nginx镜像并查看 1)

    2024年03月12日
    浏览(57)
  • 逸学Docker【java工程师基础】2.Docker镜像容器基本操作+安装MySQL镜像运行

    在这里我们的应用程序比如redis需要构建成镜像, 它作为一个Docker文件就可以进行 构建 ,构建完以后他是在 本地的 ,我们可以 推送 到镜像服务器,逆向可以 拉取 到上传的镜像,或者说我们可以保存为 压缩包 进行 相互传递 。 在本地的镜像可以传来传去,本身也可以查看

    2024年02月01日
    浏览(54)
  • 【linux】docker基本概念和基础指令操作(镜像、容器)

    docker 镜像 images xxxx(名称):xxxx(版本号) 每一个image可以生成若干个 容器 (container),所有用相同镜像生成的容器环境完全一样 每一个容器都是一个完全独立的云端服务器

    2024年02月01日
    浏览(54)
  • Docker基础入门:镜像、容器导入导出与私有仓库搭建

    💖The Begin💖点点关注,收藏不迷路💖 1.镜像导入 是复制的过程。 2.容器导入 是将当前容器 变成一个新的镜像。 save 和 export区别: 1)save 保存镜像所有的信息-包含历史信息。 2)export 只导出当前的信息。 首先,两者的操作对象不同。docker save是将一个镜像保存为一个tar包

    2024年02月12日
    浏览(53)
  • Docker基础入门:容器数据卷与Dockerfile构建镜像(发布)

    💖The Begin💖点点关注,收藏不迷路💖 1、完成数据持久化和共享数据,docker容器中的数据,同步到本地。 2、重要数据back_up 特点: 实时生效、数据卷可在容器之间共享和重用数据、数据卷中的更改不会包含在镜像更新中、数据卷的生命周期会一直延续到没有容器使用它为止

    2024年02月10日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包