引言
在我开源的 蓝眼云盘 https://github.com/eyebluecn/tank 中有 网友建议 道使用docker并且push到DockerHub上,这样子就可以一行代码直接安装蓝眼云盘了。这个提议非常好,因此本篇文章就记录下蓝眼云盘docker化的整个详细过程。在阅读这篇文章之前,读者需要具有Docker基础,我推荐阅读 《Docker — 从入门到实践》 。
目标
熟悉docker和docker-compose的基本操作
熟悉将 golang 工程部署到docker的整个流程
能够在docker中快速启动蓝眼云盘,访问 http://server-ip:6010 可以看到首页内容
环境1. 宿主机环境
宿主机不要求和我完全一致,其他版本的Linux也行,甚至Mac Os, Windows ,只要能安装docker都行。
2. docker
docker 尽量使用最新版本
构建Docker镜像1. 准备源代码
clone 项目 Github 后端tank地址https://github.com/eyebluecn/tank到本地。
2. 制作Dockerfile文件
我们需要从源代码开始编译整个项目,Dockerfile文件描述整个构建的过程。
在tank根目录下创建文件。
在clone下来的蓝眼云盘项目中,已经存在了,你可以直接阅读中的内容,或者删除这个文件重新创建,以作学习练习使用。
的内容如下:
3. 开始构建docker镜像
首先保证当前目录是所在的目录,然后执行以下指令即可开始构建:
其中 是我的 ID,是镜像名,是我当前构建的镜像版本。
注意最后的小点不要遗漏了。
如果构建成功,会看到以下提示
4. 推送到远程
只有当我们把自己构建的镜像push到Docker Hub后,别人才能很方便的下载,一行命令执行我们的应用。如果你对Docker Hub注册,或者命令行登录不熟悉,请参考这篇文章:《Docker Hub》 https://yeasy.gitbooks.io/docker_practice/content/repository/dockerhub.html
推送到远程的指令如下:
如果命令执行成功,你将看到以下提示
运行项目1. docker-compose 安装
我们的蓝眼云盘项目在运行的时候依赖数据库,在docker中运行一个镜像依赖另一个镜像的时候就要使用到。首先进入的下载页 https://github.com/docker/compose/releases 。找到一个稳定版本的安装脚本,在命令行中执行便可。
2. 编写docker-compose.yml
描述了镜像启动的数据卷,环境变量,启动方式,依赖项等。运行蓝眼云盘的如下:
3. 运行项目
首先保证当前目录是所在的目录,然后执行以下指令即可运行蓝眼云盘:
4. 验证
由于数据库启动需要一定的时间,因此大约20s后,打开浏览器访问,如果看到以下界面则表示运行成功。
5. 停止项目
方法一:使用以下命令来停止蓝眼云盘
方法二:当然你也可以用停止容器的方式来停止蓝眼云盘
参考文章
我开源了一个私人云盘——蓝眼云盘 https://blog.eyeblue.cn/home/article/8953d493-f80a-4be0-bde2-50d3c5747430
Docker — 从入门到实践 https://www.gitbook.com/book/yeasy/docker_practice/details
领取专属 10元无门槛券
私享最新 技术干货