安装Docker
卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装Docker-ce
- 更新
yum
包索引:
$ sudo yum update -y
- 安装一些必要的依赖包:
$ sudo yum install -y yum-utils
- 配置 docker-ce 仓库:
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
- 安装 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
- 验证
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 安装
- 安装额外依赖包:
$ sudo yum install epel-release
复制代码
- 安装 python-pip:
$ sudo yum install -y python-pip
- 安装 Docker Compose:
$ sudo pip install docker-compose
- 升级 python 包:
$ sudo yum upgrade python*
- 验证安装:
$ 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
复制代码
- 卸载 Docker Compose:
如果你是使用curl
的方式安装的,则运行下面的命令删除docker-conpose的文件(本文使用此种方式安装):
$ sudo rm /usr/local/bin/docker-compose
复制代码
如果你是使用 pip
的方式安装的,则运行下面的命令删除docker-conpose的文件:
$ sudo pip uninstall docker-compose
安装Minio
搜索镜像
$ docker search minio
拉取并且查看镜像
$ 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.crt
和private.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命令大全