CentOS Docker 安装

CentOS Docker 安装

Docker 支持以下的 64 位 CentOS 版本:

  • CentOS 7
  • CentOS 8
  • 更高版本…

使用官方安装脚本自动安装

安装命令如下:

1
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

手动安装

卸载旧版本

较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。

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

安装 Docker Engine-Community

使用 Docker 仓库进行安装

在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。

设置仓库

安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

$ sudo yum install -y yum-utils
device-mapper-persistent-data
lvm2

使用以下命令来设置稳定的仓库。

使用官方源地址(比较慢)

$ sudo yum-config-manager
–add-repo
https:**//download.docker.com/linux/centos/**docker-ce.repo

可以选择国内的一些源地址:

阿里云

$ sudo yum-config-manager
–add-repo
http:**//mirrors.aliyun.com/docker-ce/linux/centos/**docker-ce.repo

清华大学源

$ sudo yum-config-manager
–add-repo
https:**//mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/**docker-ce.repo

安装 Docker Engine-Community

安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:

1
$ sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

如果提示您接受 GPG 密钥,请选是。

有多个 Docker 仓库吗?

如果启用了多个 Docker 仓库,则在未在 yum install 或 yum update 命令中指定版本的情况下,进行的安装或更新将始终安装最高版本,这可能不适合您的稳定性需求。

Docker 安装完默认未启动。并且已经创建好 docker 用户组,但该用户组下没有用户。

要安装特定版本的 Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装:

1、列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序。

$ yum list docker-ce –showduplicates | sort -r

docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable

2、通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1。

1
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

启动 Docker。

1
$ sudo systemctl start docker

通过运行 hello-world 镜像来验证是否正确安装了 Docker Engine-Community 。

1
$ sudo docker run hello-world

卸载 docker

删除安装包:

1
yum remove docker-ce

删除镜像、容器、配置文件等内容:

1
rm -rf /var/lib/docker

将已有容器部署到其他服务器

将已有容器部署到其他服务器

步骤简述:将容器保存成镜像——将镜像打成tar包,压缩成tar.gz——使用scp命令将文件传输到目标服务器——将tar.gz解压成tar包,载入镜像——docker run 运行镜像创建容器

Step1:将容器保存成镜像

1
2
3
$ docker ps -a
$ docker commit -a "eula" -m "commit uptime-kuma" 1c786853ea40 eula/uptime-kuma:v1.0
$ docker images

说明:-a后面的是提交用户的用户名,-m后面的是提交信息,1c786853ea40是容器id,最后是镜像名及tag,打包出来的镜像如下:

1
2
REPOSITORY                                          TAG            IMAGE ID       CREATED              SIZE
eula/uptime-kuma v1.0 b217262a8fe7 About a minute ago 323MB

Step2:将镜像打包并压缩

1
2
3
$ docker save -o eula-uptime-kuma-v1.0.tar eula/uptime-kuma:v1.0
$ tar -zcvf eula-uptime-kuma-v1.0.tar.gz eula-uptime-kuma-v1.0.tar
$ rm -f eula-uptime-kuma-v1.0.tar

Step3:将文件传输到目标服务器

1
$ scp -P port /root/eula-uptime-kuma-v1.0.tar.gz root@ip:/root/eula-uptime-kuma-v1.0.tar.gz

Step4:解压并载入镜像

1
2
3
4
$ tar -zxvf eula-uptime-kuma-v1.0.tar.gz
$ docker load -i eula-uptime-kuma-v1.0.tar
$ docker images
$ rm -f eula-uptime-kuma-v1.0.tar

载入出来的镜像如下:

1
2
REPOSITORY                                      TAG             IMAGE ID        CREATED               SIZE
eula/uptime-kuma v1.0 b217262a8fe7 About an hour ago 323MB

Step5:运行镜像创建容器

1
2
$ docker run -d --restart=always -p 3001:3001 --name uptime-kuma eula/uptime-kuma:v1.0
$ docker ps

注意事项:

[1] 通过容器打Docker镜像要比Dockerfile生成的包要大(里面有很多没用的东西),尽量使用后者,但一些需要离线部署并且需要自动下载算法模型的除外。

[2] 直接对设置挂载的容器打包,会导致通过挂载加进去的文件并没有加进去(打出来的镜像不包含挂载进去的文件),可以再创建个不挂载的容器,把文件替换进去,再对这个不挂载的容器打包。

使用腾讯云轻量级应用服务器+calibre-web搭建在线云图书馆

之所以搞这个,其实就是想要一个可以跟着我一起走的pdf阅读器

首先在服务器上安装docker
然后拉取 johngong/calibre-web

1
docker pull johngong/calibre-web:latest

之后创建容器

1
2
3
4
5
6
7
8
9
10
11
12
13
docker create  \
--name=calibre-web \
-p 8083:8083 \
-p 8080:8080 \
-v /配置文件位置:/config \
-v /书库:/library \
-v /自动添加文件夹:/autoaddbooks \
-e UID=1000 \
-e GID=1000 \
-e CALIBRE_SERVER_USER=用户名 \
-e CALIBRE_SERVER_PASSWORD=用户密码 \
--restart unless-stopped \
johngong/calibre-web:latest

这里建议映射8083:8083,我测试别的端口不能用
启动

1
docker start calibre-web

停止

1
docker stop calibre-web

如果不想配置可以直接输入下面的指令

1
docker run -d --name calibre -p 8083:80 -v /www/xxxx/data:/data talebook/calibre-webserver

默认账号admin默认密码admin123
配置参考

参数

说明

--name=calibre-web

容器名

-p 8083:8083

calibre-web web访问端口,默认用户名: admin 默认密码: admin123

-p 8080:8080

calibre-server web访问端口

-v /配置文件位置:/config

calibre-web与calibre-server配置位置文件

-v /书库:/library

calibre-web与calibre-server书库默认位置

-v /自动添加文件夹:/autoaddbooks

calibre自动添加图书文件夹位置

-e UID=1000

uid设置,默认为1000

-e GID=1000

gid设置,默认为1000

-e ENABLE_CALIBRE_SERVER=true

(true

false)设定开启calibre-server,默认开启

-e ENABLE_CALIBRE_SERVER_OPDS=false

(true

false)开启calibre-server的OPDS功能,默认不开启,arm可能不可用

-e CALIBRE_SERVER_USER=用户名

calibre-server 用户名

-e CALIBRE_SERVER_PASSWORD=用户密码

calibre-server 用户密码

-e CALIBRE_SERVER_WEB_LANGUAGE=zh_CN

calibre-server web界面语言,默认中文,详见calibre-server其它语言

-e CALIBRE_ASCII_FILENAME=true

(true

false)设定false时calibre支持中文目录

-e CALIBRE_WEB_LANGUAGE=zh_Hans_CN

(zh_Hans_CN

en)calibre-web初始界面语言,详见calibre-web其它语言

-e TZ=Asia/Shanghai

系统时区设置,默认为Asia/Shanghai

-e CALIBREDB_OTHER_OPTION=

为自动添加脚本中calibredb命令添加其它参数,例如:duplicates命令[-d]

-e DOUBAN_SEARCH=false

(true

false)设定开启豆瓣搜索,默认不开启

可参考docker文档:https://hub.docker.com/r/johngong/calibre-web