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

本文介绍了Docker平台上热门的几种镜像,如Ubuntu、CentOS、Nginx、PHP、Node.js、MySQL、MongoDB、Redis和minio,详细说明了各自的基础信息、使用方法和示例。
摘要由CSDN通过智能技术生成

在这里插入图片描述

作者主页: 正函数的个人主页
文章收录专栏: 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
在这里插入图片描述

在这里插入图片描述

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

  • 25
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.正函数.

你的鼓励是我创作制作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值