本着折腾,在阿里云上利用Docker部署自己团队专属的Gogs代码托管仓库,可以利用外网进行全网访问。先将过程记录如下。
一开始在阿里云上和亚马逊云(AWS)上都进行了Gogs的部署,但是AWS上利用外网访问有点麻烦,一时没搞定。所以现在只有在阿里云上成功部署。
ubuntu16.04 service
首先 sudo apt-get update
安装Docker
sudo apt-get install -y docker.io
完成后启用Docker服务:service docker start
(这里在AWS上需要权限,所以此时应该先sudo passwd root设置root密码,然后再root下执行。阿里云上无此操作)
安装MySQL
先搜索一下docker search mysql
阿里云上安装使用docker pull mysql:latest
之后执行:
docker run -d -p 13306:3306 --name mysql2 -v /opt/mydata/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:latest
含义是:生成名为mydql2的docker镜像,在后台执行,root账号的密码为123456.主机映射端口为13306
以后在docker中启用mysql的方法为:
docker start mysql2
关闭为:
docker stop mysql2
启用后进入容器的方法为:
先docker ps查看已启用服务的nameID
之后再: sudo docker attach nameID
所以现在要进入到mysql容器中新建gogs数据库
mysql -u root -p
需要输入密码,前面设置的123456
之后新建gogs
mysql> CREATE DATABASE gogs CHARACTER SET utf8 COLLATE utf8_bin;
最后退出mysql
mysql> QUIT;
安装Gogs
先搜索一下docker search gogs
安装gogs
docker pull gogs/gogs:latest
启用gogs
docker run -d --name=mygogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs
至此使用Docker安装Gogs以及所需的MySQL数据库已完成。
配置外网访问
注意我们刚才设置的两个端口mysql的13306和gogs的10080
我们需要设置阿里云服务器的安全组。
网络和安全中的安全组。点开后
在配置规则中添加安全组规则
配置如图,然后再进行一次配置13306端口。之后就可以通过浏览器访问你配置的Gogs了。
具体为阿里云服务器的公网ip(如99.15.155.100),使用http://99.15.155.100:10080来访问Gogs。初次访问会进行相关设置。可参考这篇博客。
至此,在阿里云上利用Docker部署Gogs就完成了,enjoy it!