从零使用docker搭建Minio服务
为什么使用docker
在云时代,开发者创建的应用必须是“任何时间任何地点”可获取的。因此,开发者们需要一种新型的创建分布式应用程序的方式,快速分发和部署,而这正是 Docker 所能够提供的最大优势。
举个简单的例子,假设用户试图基于最常见的 LAMP(Linux+Apache+Mysql+PHP)组合来构建网络。按照传统的做法,首先需要安装 Apache、MySQL 和 PHP 以及它们各自运行所依赖的环境;之后分别对它们进行配置(包括创建合适的用户、配置参数等);经过大量的操作后,还需要进行功能测试,看是否工作正常;如果不正常,则进行调试追踪,意味着更多的时间代价和不可控的风险。可以想象,如果应用数目变多,事情会变得更多难以处理。
更为可怕的是,一旦需要服务迁移(例如从亚马逊云迁移到其他云),往往需要对每个应用都进行重新部署和调试。这些琐碎而无趣的“体力活”,极大地降低了用户的工作效率。究其根源,是这些应用直接运行在底层操作系统上,无法保证同一份应用在不同的环境中行为一致。
而 Docker 提供了一种更为聪明的方式,通过容器来打包应用、解耦应用和运行平台。这意味着迁移的时候,只需要在新的服务器上启动需要的容器就可以了,无论新旧服务器是否是同一类型的平台。这无疑帮助我们节约大量的宝贵时间,并降低部署过程出现问题的风险。
Docker搭建
1、先安装Docker所需要的依赖包和功能包 devicemapper驱动依赖的
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
2、添加Docker源,本文使用阿里云的开源地址
[root@localhost ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、清理Yum缓存和建立缓存
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache
4、前期工作做完,安装Docker
[root@localhost ~]# yum -y install docker
#也可以用yum list docker 查看docker版本选择性安装
5、配置阿里云Docker加速器
[root@localhost ~]# sudo tee /etc/docker/daemon.json <<-'EOF'
> {
> "registry-mirrors": ["https://vwyr72yu.mirror.aliyuncs.com"]
> }
> EOF
{
"registry-mirrors": ["https://vwyr72yu.mirror.aliyuncs.com"]
}
[root@localhost ~]# sudo systemctl daemon-reload
#重启Docker
[root@localhost ~]# sudo systemctl restart docker
#查看是否写入加速地址成功
[root@localhost ~]# cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://vwyr72yu.mirror.aliyuncs.com"]
}
#用ps查看是否有docker进程
[root@localhost ~]# ps -axu | grep docker
root 104160 0.2 3.2 1162728 61004 ? Ssl 01:41 0:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root 104324 0.0 0.0 112812 980 pts/2 S+ 01:43 0:00 grep --color=auto docker
到这里Docker 安装完成
使用Docker安装Minio
#使用docker search查找Minio镜像 我们可以看到第一个是官方的我们来安装这个
[root@localhost ~]# docker search minio
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
minio/minio Multi-Cloud Object Storage 578 [OK]
bitnami/minio Bitnami MinIO Docker Image 39
minio/mc Minio Client (mc) provides a modern alternat… 35 [OK]
minio/console A graphical user interface for MinIO server 14
newrelic/synthetics-minion Synthetics Containerized Private Minion 5
bitnami/minio-client Bitnami MinIO Client Docker Image 5
minio/operator 2
minio/k8s-operator Minio Operator for k8s https://kubernetes.io/ 1
rancher/minio-minio 1
minio/logsearchapi 1
minio/kes Description Kes is a tool for managing and … 1
silintl/minio-default-server 0
drud/minio 0
ibmcom/minio-s390x 0
drud/minio-exporter 0
ibmcom/minio-mc-s390x 0
ibmcom/minio-mc-ppc64le 0
ibmcom/minio-ppc64le 0
ibmcom/minio-mc-amd64 0
ibmcom/minio-amd64 0
ibmcom/minio-mc 0
minio/direct-csi Container Storage Interface (CSI) driver for… 0
ibmcom/minio 0
minio/logsearch 0
minionflo/discord 0
[root@localhost ~]#
[root@localhost ~]# docker pull minio/minio
Using default tag: latest
latest: Pulling from minio/minio
d46336f50433: Pull complete
be961ec68663: Pull complete
44173c602141: Pull complete
a9809a6a679b: Pull complete
df29d4a76971: Pull complete
2b5a8853d302: Pull complete
84f01ee8dfc1: Pull complete
Digest:
sha256:d786220feef7d8fe0239d41b5d74501dc824f6e7dd0e5a05749c502fff225bf3
Status: Downloaded newer image for minio/minio:latest
docker.io/minio/minio:latest
2.1、使用docker images来查看docker镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
minio/minio latest e31e0721a96b 5 months ago 406MB
2.2、启动minio
[root@localhost ~]# docker run --restart=unless-stopped --name minio -d -P -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=admin123" -v /home/minio/data -v /home/minio/config:/root/.minio minio/minio server /data --console-address ":9000" --address ":9090"
7ae88789ff8ecb544d1f886036eac1d11dacadcfcebfb1a4156755549215df8d
#--name是指出叫什么名字我们这里叫minio可以随便定义,但是要一眼认出来
#MINIO_ROOT_USER=admin 这个参数用来定义minio账号
#MINIO_ROOT_PASSWORD=admin123定义minio密码
#-v指本地的挂载目录和容器内部挂载目录,好处是这样容器没了 数据在
##出现以上信息代表minio启动成功
#通过docker logs 来查看日志文件
#这个7a就是上面启动minio的一长段我们输入两个字母就是就可以查看启动信息,一般docker都是输入两个
[root@localhost ~]# docker logs -f 7a
API: http://172.17.0.2:9090 http://127.0.0.1:9090
Console: http://172.17.0.2:9000 http://127.0.0.1:9000
Documentation: https://docs.min.io
You are running an older version of MinIO released 5 months ago
Update:
Run `mc admin update`
#如果开发需要调用Minio服务需要通过本地的API接口来调用,我们访问后台通过Console来访问,本文章中出现的172.17.0.2是给予docker地址生成的,我们也可以通过本服务器的IP地址加端口来访问
2.3、访问Minio服务
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7ae88789ff8e minio/minio "/usr/bin/docker-ent…" 8 minutes ago Up 8 minutes 0.0.0.0:49153->9000/tcp, :::49153->9000/tcp minio
#我们通过docker ps查看到docker内部的9000 映射到了本机的49153了,我们拿着本机的IP+端口用网页访问试试
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/16e03b73272741f99ca00971683ca1f6.png)
#账号admin
#密码admin123
登录成功
![在这里插入图片描述](https://img-blog.csdnimg.cn/98d2ac1ca7574711bd14bcdfe77e94e3.png)
大功告成
Docker文字描述照抄:
https://blog.csdn.net/smile_tianya/article/details/123142446