CentOS云服务器Docker部署Minio并且配置ssl证书

668 阅读3分钟

安装Docker

卸载旧版本

sudo yum remove docker \ 
     docker-client \ 
     docker-client-latest \ 
     docker-common \ 
     docker-latest \ 
     docker-latest-logrotate \ 
     docker-logrotate \ 
     docker-engine

安装Docker-ce

  1. 更新yum包索引:
$ sudo yum update -y
  1. 安装一些必要的依赖包:
$ sudo yum install -y yum-utils
  1. 配置 docker-ce 仓库:
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
  1. 安装 docker-ce:
$ sudo yum install -y docker-ce docker-ce-cli containerd.io

至此,Docker 已经安装完成了,Docker 服务是没有启动的。

设置 Docker 开机自启:

$ sudo systemctl enable docker

启动 Docker 服务:

$ sudo systemctl start docker
  1. 验证Docker

使用下面的命令查看Docker的版本

$ docker -v
Docker version 20.10.6, build 370c289

然后使用下面的命令可以运行hello-world程序,因为Docker中还没有hello-world程序的镜像,所以会先pull(下载)下来然后运行。

$ sudo docker run hello-world

如果看到打印 Hello for Docker!说明程序已经运行成功了。

Docker Compose 安装

  1. 安装额外依赖包:
$ sudo yum install epel-release
复制代码
  1. 安装 python-pip:
$ sudo yum install -y python-pip
  1. 安装 Docker Compose:
$ sudo pip install docker-compose
  1. 升级 python 包:
$ sudo yum upgrade python*
  1. 验证安装:
$ docker-compose version
docker-compose version 1.24.1, build 4667896
docker-py version: 3.7.3
CPython version: 2.7.5
OpenSSL version: OpenSSL 1.0.2k-fips  26 Jan 2017
复制代码
  1. 卸载 Docker Compose:

如果你是使用curl的方式安装的,则运行下面的命令删除docker-conpose的文件(本文使用此种方式安装):

$ sudo rm /usr/local/bin/docker-compose
复制代码

如果你是使用 pip 的方式安装的,则运行下面的命令删除docker-conpose的文件:

$ sudo pip uninstall docker-compose

安装Minio

搜索镜像

$ docker search minio

searchminio.png

拉取并且查看镜像

$ docker pull minio/minio
$ docker images

启动Minio容器

 docker run \
  -p 8081:8081 \
  -p 8082:8082 \
  --name minio \
  -d --restart=always --network=host \
  -v /opt/docker/minio/data:/data \
  -v /opt/docker/minio/config:/root/.minio \
  -e "MINIO_ROOT_USER=admin" \
  -e "MINIO_ROOT_PASSWORD=admin123" \
  -e "MINIO_SECRET_KEY=1234" \
  minio/minio server /data --console-address "***.com:8081" --address "***.com:8082"
  • -p 8081:8081: 服务器8081端口映射到容器内部8081

  • --name minio: 容器名为 minio

  • --network=host: 容器使用服务器网络

  • -v /opt/docker/minio/data:/data: 容器/data目录挂载到服务器/opt/docker/minio/data目录(可以不进入容器内部去操作容器内部该目录下的文件)

  • -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=admin123": 指定minio登录账号和密码

  • -e "MINIO_SECRET_KEY=1234": 指定ssl证书密码

  • /data --console-address "***.com:8081" --address "***.com:8082" :指定minio启动的端口号,如不指定,每次启动都会是不同端口号,指定域名是为了解决通过https访问之后登录报错的问题,这里需要在/etc/hosts文件添加内网IP/域名映射否则容器启动的时候会因为无法正确解析域名而报错,具体添加操作如下:

    使用

    $ ifconfig
    

    命令查看内网IP(eth0:下的inset对应的IP)在/etc/hosts文件下加一行

    [内网IP] [***.com]
    

配置ssl证书

在百度云或者腾讯云阿里云等云服务平台可以申请免费的ssl证书,申请成功之后下载pem:nginx版的证书会得到***.com.crt***.com.key两个文件,然后重名民为public.crtprivate.key(这是minio默认的公钥和私钥的文件名)上传到服务器/opt/docker/minio/config/certs,然后重启容器

$ docker restart minio

之后就可以用https://***.com:8081去访问minio的控制台了,相应的上传的文件资源也可以用https协议去访问到了

PS:一些Docker常用命令

  • docker images : 查看所有镜像
  • docker search [镜像名] : 在镜像源(如未自定义镜像源则为默认的DockerHub)搜索镜像
  • docker pull [镜像名] : 拉取指定镜像
  • docker run [OPTIONS] IMAGE [COMMAND] [ARG...] : 使用镜像运行一个容器,配置参数很多,详情参考菜鸟教程
  • docker logs [容器ID/容器名] : 查看容器日志
  • docker exec -it [容器ID/容器名] bash : 进入容器内部
  • docker cp -a [容器ID/容器名]:[容器内部目录] [服务器目录] : 将容器内部指定目录下所有文件拷贝到服务器指定目录下
  • docker ps : 查看所有运行中的容器 加上参数-a即可查看所有容器
  • docker restart [容器ID/容器名] : 重启指定容器
  • docker stop [容器ID/容器名] : 停止运行指定容器
  • docker start [容器ID/容器名] : 运行指定容器
  • docker rm -f [容器ID/容器名] : 删除指定容器 更多更详细的Docker命令参考菜鸟教程Docker命令大全