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

在这里插入图片描述

前言

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

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

  • 高质量博客汇总

然后就是博主最近最花时间的一个专栏《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

在这里插入图片描述

查看这个镜像的信息

[{"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这个端口。

在这里插入图片描述

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

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

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

在这里插入图片描述

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

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

带上-d选项后台运行。

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

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

实战二: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

在这里插入图片描述
如图所示,busybox支持非常多的命令。

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

拉取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

在这里插入图片描述

此时已经上去了。

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

网址:

  • https://cloud.tencent.com/

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/106268.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SVN 索引版本与打包版本号不匹配

今天突然遇到了一个问题&#xff0c;SVN上传不了&#xff0c;错误提示如下&#xff1a; 解决方法&#xff1a; 1.其实&#xff0c;这是SVN库不小心搞坏了&#xff0c;只能重新再创建一个SVN仓库了。

基于Hugo 搭建个人博客网站

目录 1.环境搭建 2.生成博客 3.设置主题 4.将博客部署到github上 1.环境搭建 1&#xff09;安装Homebrew brew是一个在 macOS 操作系统上用于管理软件包的包管理器。类似于centos下的yum或者ubuntu下的apt&#xff0c;它允许用户通过命令行安装、更新和管理各种软件工具、…

自动化测试:Selenium中的时间等待

在 Selenium 中&#xff0c;时间等待指在测试用例中等待某个操作完成或某个事件发生的时间。Selenium 中提供了多种方式来进行时间等待&#xff0c;包括使用 ExpectedConditions 中的 presence_of_element_located 和 visibility_of_element_located 方法等待元素可见或不可见&…

受检异常和非受检异常

异常 非受检异常和受检异常&#xff0c;都是继承自 Throwable 这个类中&#xff0c;分别是 Error 和 Exception&#xff0c; Error 是程序报错&#xff0c;系统收到无法处理的错误消息&#xff0c;它和程序本身无关。 Excetpion 是指程序运行时抛出需要处理的异常信息如果不主…

博客系统项目

文章目录 数据库的增删改查草稿箱草稿箱自动保存分页查询后端前端 评论区后端前端 md5加盐加密 md5加盐对用户密码进行加密; 全服用户博客列表页,实现分页查询; 用户博客列表页; 写博客,发博客,改博客; 博客草稿箱,自动保存,定时发布; 博客访问量,博客评论区,博客点赞; 数据库…

d3.js 的使用

这篇文章相当于之前 svg 的补充。 因为 svg 代码肯定不是人为去专门写的。 在这里推荐制作 svg 的第三方库 - D3.js 用于定制数据可视化的JavaScript库 - D3 官网地址&#xff1a; D3 by Observable | The JavaScript library for bespoke data visualization 简单使用 画…

openGauss学习笔记-65 openGauss 数据库管理-创建和管理数据库

文章目录 openGauss学习笔记-65 openGauss 数据库管理-创建和管理数据库65.1 前提条件65.2 背景信息65.3 注意事项65.4 操作步骤65.4.1 创建数据库65.4.2 查看数据库65.4.3 修改数据库65.4.4 删除数据库 openGauss学习笔记-65 openGauss 数据库管理-创建和管理数据库 65.1 前提…

PHP8的多维数组-PHP8知识详解

今天分享的是php8的数组中的多维数组&#xff0c;主要内容有&#xff1a;多维数组的概念、创建和输出二维数组、创建和输出三维数组。 1、多维数组的概念 多维数组是包含一个或多个数组的数组。在多维数组中&#xff0c;主数组中的每一个元素也可以是一个数组&#xff0c;子数…

基于若依框架实现markdown在线编辑

基于若依框架实现markdown在线编辑 1. 下载mavon-editor npm install mavon-editor --save2. 打开main.js文件, 添加如下 // markdown组件 import { mavonEditor } from "mavon-editor"; import "mavon-editor/dist/css/index.css";// markdown组件 Vue…

React中函数式组件与类组件有何不同?

Function Component 与 Class Component 有何不同 目录 Function Component 与 Class Component 有何不同 文章核心观点&#xff1a; 解释一下&#xff1a; 总结&#xff1a; 文章核心观点&#xff1a; Function components capture the rendered values.函数式组件捕获…

【大数据】Kafka 入门指南

Kafka 入门指南 1.Kafka 简介2.Kafka 架构3.分区与副本4.偏移量5.消费者组6.总结 1.Kafka 简介 Apache Kafka 是一种高吞吐、分布式的流处理平台&#xff0c;由 LinkedIn 开发并于 2011 年开源。它具有 高伸缩性、高可靠性 和 低延迟 等特点&#xff0c;因此在大型数据处理场景…

开发者的商业智慧:产品立项策划你知道多少?

文章目录 想法的萌芽&#x1f31f;初步评估产品可行性&#x1f34a;分析核心功能和特点以及竞争对手&#x1f4dd;大健康监测&#x1f4dd;时尚新科技产品&#x1f4dd;准确性&#x1f4dd;多功能&#x1f4dd;品牌口碑&#x1f4dd;数据分析与个性化建议&#x1f4dd;社交互动…