Docker从认识到实践再到底层原理(四-2)|Docker镜像仓库实战案例

这篇具有很好参考价值的文章主要介绍了Docker从认识到实践再到底层原理(四-2)|Docker镜像仓库实战案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Docker从认识到实践再到底层原理(四-2)|Docker镜像仓库实战案例,Docker从认识到实践再到底层原理,docker,容器,运维,linux,镜像仓库

前言

那么这里博主先安利一些干货满满的专栏了!

首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。

  • 高质量博客汇总

然后就是博主最近最花时间的一个专栏《Docker从认识到实践再到底层原理》希望大家多多关注!

  • Docker从认识到实践再到底层原理

镜像仓库实战练习

实战一:搭建一个Nginx服务

基础知识

有关于Nginx的相关基础知识,可见博客。

  • https://blog.csdn.net/Yu_Cblog/article/details/131777668?spm=1001.2014.3001.5502

找一个合适的Nginx镜像然后拉取下来

直接上dockerhub找,要找一些认证过的,安全漏洞少的。

docker pull nginx:1.24.0

Docker从认识到实践再到底层原理(四-2)|Docker镜像仓库实战案例,Docker从认识到实践再到底层原理,docker,容器,运维,linux,镜像仓库

查看这个镜像的信息

[
    {
        "Id": "sha256:bf09be6b0005cc81d4cc3c3cf836c84450e92a7c4dcb2e2e31d84843ff3d6c62",
        "RepoTags": [
            "nginx:1.24.0"
        ],
        "RepoDigests": [
            "nginx@sha256:a195f9fb6503531660b25f9aeefef1f48bbaf56f46da04bffe1568abb3d3aff6"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2023-08-16T09:51:35.963457884Z",
        "Container": "21c5e07cc340501c06b6c9c9ddecb109f73df89abb5a9e5b5d0446a93bce5787",
        "ContainerConfig": {
            "Hostname": "21c5e07cc340",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "80/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "NGINX_VERSION=1.24.0",
                "NJS_VERSION=0.7.12",
                "PKG_RELEASE=1~bullseye"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "#(nop) ",
                "CMD [\"nginx\" \"-g\" \"daemon off;\"]"
            ],
            "Image": "sha256:7dcbca41c4e2332943388468e49bb0dfb817a7968701009888e6de8bfc507448",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": [
                "/docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": {
                "maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
            },
            "StopSignal": "SIGQUIT"
        },
        "DockerVersion": "20.10.23",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "80/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "NGINX_VERSION=1.24.0",
                "NJS_VERSION=0.7.12",
                "PKG_RELEASE=1~bullseye"
            ],
            "Cmd": [
                "nginx",
                "-g",
                "daemon off;"
            ],
            "Image": "sha256:7dcbca41c4e2332943388468e49bb0dfb817a7968701009888e6de8bfc507448",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": [
                "/docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": {
                "maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
            },
            "StopSignal": "SIGQUIT"
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 142203809,
        "VirtualSize": 142203809,
        "GraphDriver": {
            "Data": {
                "LowerDir": "/data/var/lib/docker/overlay2/802175726a26b553dd520ef1f37e8ef3119a87313ef7225f5e99ffb536b8734c/diff:/data/var/lib/docker/overlay2/18c96ba08189c46e2ec2d72be86e567ecd1aa6e6015676f99a6b34f8dd987414/diff:/data/var/lib/docker/overlay2/e0f5488f47fe33bc1635d81a05d7e270254f514c5f23bf53a9e4c816465e3655/diff:/data/var/lib/docker/overlay2/fba5c6dd16cfa7554b01cae639acb517f5a2d8150a3ee9fbea84ef542b8276b1/diff:/data/var/lib/docker/overlay2/09ed26d778b566d2df261bfd2e0b2a7e1db9ed9fb1cec5b37a6615842a141464/diff",
                "MergedDir": "/data/var/lib/docker/overlay2/8bddb1b07abd085e515d66c03a4ac356e5e79377eadcccf4aac49efddd7a39ae/merged",
                "UpperDir": "/data/var/lib/docker/overlay2/8bddb1b07abd085e515d66c03a4ac356e5e79377eadcccf4aac49efddd7a39ae/diff",
                "WorkDir": "/data/var/lib/docker/overlay2/8bddb1b07abd085e515d66c03a4ac356e5e79377eadcccf4aac49efddd7a39ae/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:63290f9c9e5201f0507ee1b5701aa06c7f48bef7cce287fc77db92bec634d737",
                "sha256:4c3723958fdba7a3be12c56c73d6f35c5da6ff9f6feecddc0bb6b128900f3dc9",
                "sha256:25f78b8b81b403911798779f4197d78cf49e3064fa093ae6519f1bc2349d3d22",
                "sha256:9cf681134567fd7bf900d01121e321fa9be8e53744fd127e2cea827e49d4888b",
                "sha256:d635f1cc38f9a833d96e67b6044bb054bf1585404bba1022db4bc3e38e7f2922",
                "sha256:451dfbce0e08ae65bc6421917afa07e5c85633ffb278ce66620311739ea415d6"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]

通过这些详细信息,我们可以知道启动命令,端口号等信息。

启动这个镜像并修改首页

docker run -p 8080:80 --name myweb1 -h myweb1.com -e myenv=test nginx:1.24.0

对外暴露8080这个端口。

Docker从认识到实践再到底层原理(四-2)|Docker镜像仓库实战案例,Docker从认识到实践再到底层原理,docker,容器,运维,linux,镜像仓库

外面通过8080端口已经可以访问了。

注意:如果使用的是云服务器,要注意开放云服务器的防火墙。

在这里服务端也可以看到访问的日志打印。

Docker从认识到实践再到底层原理(四-2)|Docker镜像仓库实战案例,Docker从认识到实践再到底层原理,docker,容器,运维,linux,镜像仓库

当然,这里是前台运行,如果我们终端终止了,服务就停了。

所以我们要放到后台运行。

带上-d选项后台运行。

docker run -p 8080:80 --name myweb1 -h myweb1.com -e myenv=test -d nginx:1.24.0

Docker从认识到实践再到底层原理(四-2)|Docker镜像仓库实战案例,Docker从认识到实践再到底层原理,docker,容器,运维,linux,镜像仓库

但是这样没有交互,我们改不了首页。所以我们要用交互的方式重新打开。

Docker从认识到实践再到底层原理(四-2)|Docker镜像仓库实战案例,Docker从认识到实践再到底层原理,docker,容器,运维,linux,镜像仓库
Docker从认识到实践再到底层原理(四-2)|Docker镜像仓库实战案例,Docker从认识到实践再到底层原理,docker,容器,运维,linux,镜像仓库

实战二:Docker hub上创建自己私有仓库

基础知识

BusyBox

BusyBox 是一个集成了三百多个最常用 Linux 命令和工具的软件。BusyBox 包含了一 些简单的工具,例如 ls、cat 和 echo 等等,还包含了一些更大、更复杂的工具,例 grep、find、mount 以及 telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。 简单的说 BusyBox 就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也 包含了 Linux 系统的自带的 shell。busybox 是一个集成了一百多个最常用 linux 命令和 工具的软件,他甚至还集成了一个 http 服务器和一个 telnet 服务器,而所有这一切功能却 只有区区 1M 左右的大小.因海外带宽较小,我们拉取该镜像推送到自己的仓库。

下载busybox

wget https://busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-x86_64 --no-check-certificate

Docker从认识到实践再到底层原理(四-2)|Docker镜像仓库实战案例,Docker从认识到实践再到底层原理,docker,容器,运维,linux,镜像仓库
如图所示,busybox支持非常多的命令。

Docker从认识到实践再到底层原理(四-2)|Docker镜像仓库实战案例,Docker从认识到实践再到底层原理,docker,容器,运维,linux,镜像仓库
Docker从认识到实践再到底层原理(四-2)|Docker镜像仓库实战案例,Docker从认识到实践再到底层原理,docker,容器,运维,linux,镜像仓库

docker hub上创建自己的私有仓库

Docker从认识到实践再到底层原理(四-2)|Docker镜像仓库实战案例,Docker从认识到实践再到底层原理,docker,容器,运维,linux,镜像仓库

Docker从认识到实践再到底层原理(四-2)|Docker镜像仓库实战案例,Docker从认识到实践再到底层原理,docker,容器,运维,linux,镜像仓库

拉取busybox镜像并推送到自己的仓库中

现在其实我们的仓库里面是没有镜像的,所以我们先拉一个busybox镜像到本地先。

docker pull busybox:1.36.0

然后登录。

docker login

打标签。

docker tag busybox:1.36.0 yufcbagpack/busybox-by-yufc:v1.0

push上去。

docker push yufcbagpack/busybox-by-yufc:v1.0

Docker从认识到实践再到底层原理(四-2)|Docker镜像仓库实战案例,Docker从认识到实践再到底层原理,docker,容器,运维,linux,镜像仓库

此时已经上去了。

实战三:腾讯云创建自己的私有仓库

网址:

  • https://cloud.tencent.com/

如何在工作中选取我们需要的基础镜像

我入职了一个公司,开发一个镜像,我怎么选择用哪个作为基础镜像啊?

一般大型公司有自己专门的镜像制作组织,他们会选取对应的系统版本作为基础镜 像,例如华为某部门选取欧拉来制作基础镜像,腾讯选择自己的 TLinux 制作基础镜像, 不会因为出现 CentOS 不维护了无法使用的情况,而且这些镜像一般都会经过严格的 安全扫描,然后作为基础组件提供给各个部门。一般的公司往往也会同意镜像的基础 版本,所以这个选择个人一般不用太多纠结。文章来源地址https://www.toymoban.com/news/detail-728814.html

到了这里,关于Docker从认识到实践再到底层原理(四-2)|Docker镜像仓库实战案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Docker从认识到实践再到底层原理(二-1)|容器技术发展史+虚拟化容器概念和简介

    那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量博客汇总 然后就是博主最近最花时间的一个专栏《Docker从认识到实践再到底层原理》希望大家多多关

    2024年02月09日
    浏览(24)
  • docker 镜像仓库实战

    “面对脆弱的玩笑”          悉知Docker镜像仓库的命令后,我们总得将这些命令使用起来,在实践中深刻理解执行这些命令的实际效果。         至于Nginx是什么,我想在这一篇中已经有过讲解: Nignx服务,也并非本篇要详解的。以往部署Nginx服务都是在宿主机上,后台运行

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

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

    2024年02月16日
    浏览(36)
  • Docker(三)使用 Docker 镜像:从仓库获取镜像;管理本地主机上的镜像;介绍镜像实现的基本原理

    作者主页: 正函数的个人主页 文章收录专栏: Docker 欢迎大家点赞 👍 收藏 ⭐ 加关注哦! 在之前的介绍中,我们知道镜像是 Docker 的三大组件之一。 Docker 运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker 会从镜像仓库下载该镜像。 本章将介绍更多关于镜

    2024年01月20日
    浏览(29)
  • 超详细【入门精讲】数据仓库原理&实战 一步一步搭建数据仓库 内附相应实验代码和镜像数据和脚本

    文章对应的博客园链接:点击这里 建议搭配视频内容食用,效果更加。也可以直接按博客内容学习完成搭建 B站课程链接: 课程链接地址 下载UP主 哈喽鹏程 提供的资源镜像及脚本包 后续所使用的SQL脚本和shell脚本及job脚本文件,均在此下载,请自行下载 下载连接: 数据仓

    2024年02月03日
    浏览(35)
  • Docker -- 镜像仓库(搭建私有镜像仓库、向镜像仓库推送镜像、从镜像仓库拉取镜像)

    搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。 官网地址 Docker 官方的 Docker Registry 是一个基础版本的 Docker 镜像仓库,具备仓库管理的完整功能,但是没有图形化界面。 搭建方式比较简单,命令如下: 命令中挂载了一个数据卷 registry-data 到容器内的 /var/lib/regist

    2024年02月04日
    浏览(66)
  • Docker 镜像仓库是什么?有哪些镜像仓库命令?

    (图片来源:Docker架构图) Registry(Docker 仓库) : Docker 仓库用来保存镜像,Docker 官方提供了一个公共的 Docker 仓库,称为 Docker Hub,开发者可以在 Docker Hub 上分享和获取 Docker 镜像。 Docker daemon :Docker daemon 是服务器组件,是 Docker 最核心的后台进程。 Docker 客户端(Client)

    2024年02月20日
    浏览(32)
  • Docker | 发布镜像到镜像仓库

    ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:Docker系列 ✨特色专栏: MySQL学习 🥭本文内容:Docker | 发布镜像到镜像仓库 📚个人知识库: Leo知识库,欢迎大家访问 大家好,我是Leo哥🫣🫣🫣

    2024年02月03日
    浏览(39)
  • 【Docker】Docker之镜像上传(阿里云镜像仓库)

    登录阿里云 登录成功后,搜索docker镜像 点击立即开通 创建个人实例 创建镜像仓库 点击下一步之后,可以选择代码源,本文选择的是本地仓库 镜像仓库创建成功,根据对应操作命令实现想要的功能,如上传镜像、拉取镜像等 参考链接:Docker之镜像上传(手把手教你在Docke

    2024年02月13日
    浏览(26)
  • 【Docker】Docker 镜像仓库

    3.4.1 基本概念 是什么? 镜像仓库:用于管理 Docker 的镜像 为什么需要? 快速交付:当应用开发完成后,直接打包为一个镜像,将镜像上传到仓库后,可以在任何装有 Docker 的机器上下载该镜像,并运行为一个容器 便于镜像的重复利用 能干什么? 实现快速交付,可以更方便

    2024年02月08日
    浏览(29)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包