使用Docker搭建图床
用Docker搭建图床
第一步,安装 docker :
1 | yum install docker |
第二步,启动 docker:
1 | systemctl start docker |
也可以设置开机自启:
1 | systemctl enable docker |
第三步,把别人已经做好的镜像拉下来
在 docker 中拉镜像跟 Git 拉仓库差不多,命令是:
1 | docker imgae pull |
这里需要拉的是 kdelfour/lychee-docker,所以完整命令:
1 | docker image pull kdelfour/lychee-docker |
镜像拉下来后,你可以用 ls
看一下是不是有这个镜像了(docker image ls
)。
第四步,启动这个镜像
需要说明的是端口映射的问题。由于我的服务器已经搭了个人网站,也用的浏览器默认的 80 端口,所以图床就不能用 80,我改用 5120,完整命令:
1 | docker run -it -d -p 5120:80 kdelfour/lychee-docker |
访问 5120 端口,映射到 docker 容器里边的 80 端口)。
命令 docker container ls
是查看正在运行的容器。可以看到第一次用这个命令的时候,没有容器在跑;启动之后就有了。
第五步,访问http://你的域名:5120
由于我是在本地的虚拟机里搭建,所以访问的是 http://ip:5120
。
进入到初始化阶段。可以看到 Database Host 、Data Name 和 Table predix 是选填,那我们就不管它。而 Username 和 Password 默认都是 lychee 。输入后点击 connect,你会看到它要你新建一个用户名和密码,这是你之后登录图床要用到的。
第六步,创建 ablum,上传图片
右上角 + –> Upload Photo,然后就可以愉快的上传图片了。lychee 还提供了其他导入图片方式,点击符号 + 可自行按需选择。更多用法请自己探索。
所以我们上传的图片到底去哪儿了呢。这时候我们需要先进入这个容器。命令
1 | docker container ls |
会显示容器的 CONTAINER ID,拿到这个 ID 后,键入
1 | docker container exec -it 9a8e6f34294a /bin/bash |
就进入容器了。
现在可以 ls
一下,是不是感觉进入了一个 linux 终端,其实这就是 docker 想做的。然后关注 uploads 目录,可以看到图片就在 big 目录下。
肯定会有人说卧槽,那我怎么把图片取出来呢?事实上,lychee 提供了网页的下载方式,想在服务器上操作也 OK 呀。把图片名复制下来(这个经过 hash 处理,基本是独一无二了),在你的服务器上用 find
命令搜索,不就找到它的绝对路径了嘛!
最后附上卸载方式:
- 先停止运行的容器:
docker container stop [container-id]
- 然后删除容器:
docker container rm [container-id]
- 最后删除镜像:
docker image rmi [image-id]
获取对应的 id 可以通过命令:docker container ls
和 docker image ls
。