【Docker】附录二:热门镜像介绍

news2024/11/24 16:40:50

在这里插入图片描述

作者主页: 正函数的个人主页
文章收录专栏: Docker
欢迎大家点赞 👍 收藏 ⭐ 加关注哦!


热门镜像介绍

本章将介绍一些热门镜像的功能,使用方法等。包括 Ubuntu、CentOS、MySQL、MongoDB、Redis、Nginx、Wordpress、Node.js 等。


一、Ubuntu

基本信息

Ubuntu 是流行的 Linux 发行版,其自带软件版本往往较新一些。

该仓库位于 https://hub.docker.com/_/ubuntu/ ,提供了 Ubuntu 从 12.04 ~ 20.04 各个版本的镜像。

使用方法

默认会启动一个最小化的 Ubuntu 环境。

$ docker run --name some-ubuntu -it ubuntu:20.04
root@523c70904d54:/#

Dockerfile

请到 https://github.com/docker-library/docs/tree/master/ubuntu 查看。


二、CentOS

基本信息

CentOS 是流行的 Linux 发行版,其软件包大多跟 RedHat 系列保持一致。

该仓库位于 https://hub.docker.com/_/centos ,提供了 CentOS 从 5 ~ 8 各个版本的镜像。

使用方法

默认会启动一个最小化的 CentOS 环境。

$ docker run --name centos -it centos bash
bash-4.2#

Dockerfile

请到 https://github.com/docker-library/docs/tree/master/centos 查看。


三、Nginx

基本信息

Nginx 是开源的高效的 Web 服务器实现,支持 HTTP、HTTPS、SMTP、POP3、IMAP 等协议。

该仓库位于 https://hub.docker.com/_/nginx/ ,提供了 Nginx 1.0 ~ 1.19.x 各个版本的镜像。

使用方法

下面的命令将作为一个静态页面服务器启动。

$ docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx

用户也可以不使用这种映射方式,通过利用 Dockerfile 来直接将静态页面内容放到镜像中,内容为

FROM nginx
COPY static-html-directory /usr/share/nginx/html

之后生成新的镜像,并启动一个容器。

$ docker build -t some-content-nginx .
$ docker run --name some-nginx -d some-content-nginx

开放端口,并映射到本地的 8080 端口。

$ docker run --name some-nginx -d -p 8080:80 some-content-nginx

Nginx的默认配置文件路径为 /etc/nginx/nginx.conf,可以通过映射它来使用本地的配置文件,例如

$ docker run -d \
    --name some-nginx \
    -p 8080:80 \
    -v /path/nginx.conf:/etc/nginx/nginx.conf:ro \
    nginx

Dockerfile

请到 https://github.com/docker-library/docs/tree/master/nginx 查看。


四、PHP

基本信息

PHP(Hypertext Preprocessor 超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML 中,尤其适合 web 开发。

该仓库位于 https://hub.docker.com/_/php/ ,提供了 PHP 5.x ~ 8.x 各个版本的镜像。

使用方法

下面的命令将运行一个已有的 PHP 脚本。

$ docker run -it --rm -v "$PWD":/app -w /app php:alpine php your-script.php

Dockerfile

请到 https://github.com/docker-library/docs/tree/master/php 查看。


五、Node.js

基本信息

Node.js 是基于 JavaScript 的可扩展服务端和网络软件开发平台。

该仓库位于 https://hub.docker.com/_/node/ ,提供了 Node.js 0.10 ~ 14.x 各个版本的镜像。

使用方法

在项目中创建一个 Dockerfile。

FROM node:12
# replace this with your application's default port
EXPOSE 8888

然后创建镜像,并启动容器。

$ docker build -t my-nodejs-app
$ docker run -it --rm --name my-running-app my-nodejs-app

也可以直接运行一个简单容器。

$ docker run -it --rm \
    --name my-running-script \
    # -v "$(pwd)":/usr/src/myapp \
    --mount type=bind,src=`$(pwd)`,target=/usr/src/myapp \
    -w /usr/src/myapp \
    node:12-alpine \
    node your-daemon-or-script.js

Dockerfile

请到 https://github.com/docker-library/docs/tree/master/node 查看。


六、MySQL

基本信息

MySQL 是开源的关系数据库实现。

该仓库位于 https://hub.docker.com/_/mysql/ ,提供了 MySQL 5.5 ~ 8.x 各个版本的镜像。

使用方法

默认会在 3306 端口启动数据库。

$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=mysecretpassword -d mysql

之后就可以使用其它应用来连接到该容器。

$ docker run --name some-app --link some-mysql:mysql -d application-that-uses-mysql

或者通过 mysql 命令行连接。

$ docker run -it --rm \
    --link some-mysql:mysql \
    mysql \
    sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'

Dockerfile

请到 https://github.com/docker-library/docs/tree/master/mysql 查看。


七、WordPress

基本信息

WordPress 是开源的 Blog 和内容管理系统框架,它基于 PHP 和 MySQL。

该仓库位于 https://hub.docker.com/_/wordpress/ ,提供了 WordPress 4.x ~ 5.x 版本的镜像。

使用方法

启动容器需要 MySQL 的支持,默认端口为 80

$ docker run --name some-wordpress --link some-mysql:mysql -d wordpress

启动 WordPress 容器时可以指定的一些环境变量包括:

  • WORDPRESS_DB_USER 缺省为 root
  • WORDPRESS_DB_PASSWORD 缺省为连接 mysql 容器的环境变量 MYSQL_ROOT_PASSWORD 的值
  • WORDPRESS_DB_NAME 缺省为 wordpress

Dockerfile

请到 https://github.com/docker-library/docs/tree/master/wordpress 查看。


八、MongoDB

基本信息

MongoDB 是开源的 NoSQL 数据库实现。

该仓库位于 https://hub.docker.com/_/mongo/ ,提供了 MongoDB 2.x ~ 4.x 各个版本的镜像。

使用方法

默认会在 27017 端口启动数据库。

$ docker run --name mongo -d mongo

使用其他应用连接到容器,可以用

$ docker run --name some-app --link some-mongo:mongo -d application-that-uses-mongo

或者通过 mongo

$ docker run -it --rm \
    --link some-mongo:mongo \
    mongo \
    sh -c 'exec mongo "$MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT/test"'

Dockerfile

请到 https://github.com/docker-library/docs/tree/master/mongo 查看。


九、Redis

基本信息

Redis 是开源的内存 Key-Value 数据库实现。

该仓库位于 https://hub.docker.com/_/redis/ ,提供了 Redis 3.x ~ 6.x 各个版本的镜像。

使用方法

默认会在 6379 端口启动数据库。

$ docker run --name some-redis -d -p 6379:6379 redis

另外还可以启用 持久存储。

$ docker run --name some-redis -d -p 6379:6379 redis redis-server --appendonly yes

默认数据存储位置在 VOLUME/data。可以使用 --volumes-from some-volume-container-v /docker/host/dir:/data 将数据存放到本地。

使用其他应用连接到容器,可以用

$ docker run --name some-app --link some-redis:redis -d application-that-uses-redis

或者通过 redis-cli

$ docker run -it --rm \
    --link some-redis:redis \
    redis \
    sh -c 'exec redis-cli -h "$REDIS_PORT_6379_TCP_ADDR" -p "$REDIS_PORT_6379_TCP_PORT"'

Dockerfile

请到 https://github.com/docker-library/docs/tree/master/redis 查看。


十、minio

MinIO 是一个基于 Apache License v2.0 开源协议的对象存储服务。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。

MinIO 是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。

官方文档

简单使用

测试、开发环境下不考虑数据存储的情况下可以使用下面的命令快速开启服务。

$ docker run -d -p 9000:9000 -p 9090:9090 minio/minio server /data --console-address ':9090'

离线部署

许多生产环境是一般是没有公网资源的,这就需要从有公网资源的服务器上把镜像导出,然后导入到需要运行镜像的内网服务器。

导出镜像

在有公网资源的服务器上下载好minio/minio镜像

$ docker save -o minio.tar minio/minio:latest

使用docker save 的时候,也可以使用image id 来导出,但是那样导出的时候,就会丢失原来的镜像名称,推荐,还是使用镜像名字+tag来导出镜像

导入镜像

把压缩文件复制到内网服务器上,使用下面的命令导入镜像

$ docker load minio.tar 

运行 minio

  • /mnt/data 改成要替换的数据目录
  • 替换 MINIO_ROOT_USER 的值
  • 替换 MINIO_ROOT_PASSWORD 的值
  • 替换 name,minio1(可选)
  • 如果 9000、9090 端口冲突,替换端口前面的如 9009:9000
$ sudo docker run -d -p 9000:9000 -p 9090:9090 --name minio1 \
  -e "MINIO_ROOT_USER=改成自己需要的" \
  -e "MINIO_ROOT_PASSWORD=改成自己需要的" \
  -v /mnt/data:/data \
  --restart=always \
  minio/minio server /data --console-address ':9090'

访问 web 管理页面

http://x.x.x.x:9090


作者主页: 正函数的个人主页
文章收录专栏: Docker
在这里插入图片描述

在这里插入图片描述

欢迎大家点赞 👍 收藏 ⭐ 加关注哦!
如果你认为这篇文章对你有帮助,请给正函数点个赞吧,如果发现什么问题,欢迎评论区留言!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

k8s学习-DaemonSet和Job

1.1DaemonSet是什么 Deployment部署的副本Pod会分布在各个Node上,每个Node都可能运行好几个副本。DaemonSet的不同之处在于:每个Node上最多只能运行⼀个副本。DaemonSet的典型应用场景有: (1)在集群的每个节点上运⾏存…

Adobe ColdFusion 反序列化漏洞复现(CVE-2023-38203)

0x01 产品简介 Adobe ColdFusion是美国奥多比(Adobe)公司的一套快速应用程序开发平台。该平台包括集成开发环境和脚本语言。 0x02 漏洞概述 Adobe ColdFusion存在代码问题漏洞,该漏洞源于受到不受信任数据反序列化漏洞的影响,攻击者通过漏洞可以代码执行,可导致服务器失…

6.小时表天分区和小时分区顺序错误,怎么办?

目录 一、解决思路二、修复表结构2.1 建表2.2查询数据2.3查询数据路径2.4删表重建2.5查询表结构2.6查询数据 三、恢复数据3.1方案1 直接移动原分区数据到新分区下3.2方案2 将分区路径指导原数据路径3.3方案3 通过临时表恢复数据 一、解决思路 对于这个问题,主要分为…

C++类和对象——构造函数与解析函数介绍

目录 1.构造函数和析构函数 1.构造函数,进行初始化 2.析构函数,进行清理 2.构造函数的分类及调用 1.括号法 注意: 2.显示法 3.隐式转化法 匿名对象 3.拷贝构造函数调用时机 4.构造函数调用规则 1.定义有参构造函数,不…

微信小程序之页面导航、生命周期和WXS脚本

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

机器学习的数据库积累........

https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf1_detection_zoo.md ​​​​​​​ 另一个database:(网址:Object Detection Made Easy with TensorFlow Hub: Tutorial) Object Detection Made Easy with Ten…

【Java Kubernates】Java调用kubernates提交Yaml到SparkOperator

背景 目前查询框架使用的是trino,但是trino也有其局限性,需要准备一个备用的查询框架。考虑使用spark,spark operator也已经部署到k8s,现在需要定向提交spark sql到k8s的sparkoperator上,使用k8s资源执行sql。 对比 …

RCC——使用HSE/HSI配置时钟

RCC 文章目录 前言一、背景二、仿真计算周期 2.1 2.2 三、MCO引脚输出时钟总结 前言 前期疑问:1、RCC是什么意思。 2、最终配好的72M是系统时钟吗? 3、一共有哪些时钟 本文目标:将PLL时钟配置成72M 疑问解答:最终配好的时钟是…

GitLab16.8配置webhooks、Jenkins2.4配置GitLab插件实现持续集成

看本篇文章的前提是已经部署完GItlab和Jenkins服务器,已经可以手动构建成功,并且经过了很多次实践,对这两款软件基本熟悉。 希望大家都能够厚积薄发。 ~~~道理都懂,但有时候做不到,所以还是没真正懂。 前端自动化&am…

【Qt无门槛入门】信号以及信号机制及其常用控件(1)

信号与信号槽 信号源:由哪个控件发出的信号。 信号的类型:用户进行不同的操作,就可能出发不同的信号。 信号处理的方式:槽(slot)某个对象接收到这个信号之后,就会做一些相关的处理动作。但是Qt对象不会无故…

uniCloud 免费版和商用版

概述 uniCloud为每个开发者提供一个免费的服务空间,更低门槛按量付费是serverless的特色,如果没有消耗硬件资源,就完全不用付款serverless比传统的云主机更便宜传统云主机一旦被攻击,高防价格非常昂贵。而uniCloud无需支付高防费…

零基础学习数学建模——(五)美赛写作指导

本篇博客将详细讲解美赛论文写作。 文章目录 标题摘要目录引言问题背景问题重述前人研究我们的工作 模型假设及符号说明正文问题分析模型建立模型求解结果分析模型检验 模型优缺点及展望模型优缺点模型展望 参考文献及附录参考文献附录 2024年美赛论文新要求 标题 标题要简洁…

Linux使用二进制包安装MySQL

目录 一、软件包下载 二、上传软件包到Linux根目录 1、使用xftp将软件包上传到根目录 2、解压缩 三、准备工作 四、初始化软件 五、设置MySQL的配置文件 六、配置启动脚本 一、软件包下载 官网下载:MySQL :: Download MySQL Community Server 二、上传软件…

Future模式先给您提货单

Future模式是一种设计模式,用于在处理耗时操作时提高程序的响应性。 角色介绍: Main类: 负责向Host发出请求并获取数据的类。 Host类: 负责向请求返回FutureData的实例的类,起到调度的作用。 Data接口: 表示访问数据的方法的接口,由FutureD…

LabVIEW电液比例阀测试系统

电液比例阀与普通阀和伺服阀相比,比例阀展现出显著的耐污染和可靠性特点。为了满足这些比例阀的综合性能测试需求,开发了一种基于LabVIEW软件的电液比例阀综合性能试验台。这个系统不仅能够进行比例压力阀、流量阀和方向阀的性能测试,而且通过…

STM32-LwESP 移植

LwESP 是一个专门解析 Espressif 公司旗下 ESP 系列芯片 AT 指令的开源库,具有以下特性: 支持 Espressif 公司 ESP32, ESP32-C2, ESP32-C3, ESP32-C6 和 ESP8266 芯片。独立平台,采用 C99 标准编写,易于移植。允许不同的配置来优…

前端大厂面试题探索编辑部——第二期

目录 题目 单选题1 题解 关于TCP 关于UDP 单选题2 题解 A选项的HTTP是否是无状态协议 B选项的HTTP支持的方法 C选项的关于HTTP的状态码 D选项HTTP协议的传输格式 题目 单选题1 1.以下哪个描述是关于 TCP 和 UDP 的区别() A. TCP 是无连接的…

大创项目推荐 题目:基于python的验证码识别 - 机器视觉 验证码识别

文章目录 0 前言1 项目简介2 验证码识别步骤2.1 灰度处理&二值化2.2 去除边框2.3 图像降噪2.4 字符切割2.5 识别 3 基于tensorflow的验证码识别3.1 数据集3.2 基于tf的神经网络训练代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于pyt…

Deeplearning

Numpy Deep Learning Basic 神经网络: #mermaid-svg-2N27H7C0XPrmd8HP {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-2N27H7C0XPrmd8HP .error-icon{fill:#552222;}#mermaid-svg-2N27H7C0XPrmd8HP .…

【RTP】webrtc 学习2: webrtc对h264的rtp打包

切片只是拷贝帧的split的各个部分到新的rtp 包的封装中。并没有在rtp包本身标记是否为关键帧FU-A 切片 输入的H.264 数据进行split :SplitNalu SplitNalu : 按照最大1200字节进行切分 切分后会返回一个数组 对于FU-A :split的数据总大小是 去掉一个字节的nalu header size …