gitlab太重不好用?docker搭建gogs服务器,适合新手。
第一次写技术类文章,有错误地方希望大佬能够指正。
最近有朋友问我安装gitlab的一些问题,我回他可以去百度,教程应该很多,实在不行直接宝塔界面图形化安装也方便省事。之前公司一直用的gitlab来进行代码托管,个人在使用gitlab时候感觉大而全,但是对服务器弊端也明显,消耗资源过多,2G内存不建议安装。自己也找了下替代品,gogs是一个不错的选择,比gitlab“轻”了很多。本篇文章在docker下安装gogs,适合于新手。
一、docker
之前没有玩过docker,看了会菜鸟教程,心想既然是写给新手的,还是写一下
机器是1核2G,CentOS7.4,看了下docker版本比较新,不需要下载
[root@izuf8jscryli5qtizlvbgpz ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@izuf8jscryli5qtizlvbgpz ~]# docker version Client: Version: 18.06.1-ce API version: 1.38 Go version: go1.10.3 Git commit: e68fc7a Built: Tue Aug 21 17:23:03 2018 OS/Arch: linux/amd64 Experimental: false Server: Engine: Version: 18.06.1-ce API version: 1.38 (minimum version 1.12) Go version: go1.10.3 Git commit: e68fc7a Built: Tue Aug 21 17:25:29 2018 OS/Arch: linux/amd64 Experimental: false
如果是旧版本的docker,记得先移出再安装,具体可以看看centos安装docker
这里说一下镜像加速,这台机器重新安装docker给了daemon.json.rpmsave,但是很多人可能会没有,自己找一个
[root@izuf8jscryli5qtizlvbgpz ~]# ll /etc/docker total 12 -rw-r--r-- 1 root root 67 Oct 3 20:36 daemon.json -rw-r--r-- 1 root root 67 Jun 1 18:10 daemon.json.rpmsave -rw------- 1 root root 244 Jun 1 18:10 key.json [root@izuf8jscryli5qtizlvbgpz ~]# cat /etc/docker/daemon.json { "registry-mirrors": ["https://xxxxxxxxxxx自己找xxxxxxxxxx.aliyuncs.com"] }
docker启动与停止
systemctl start docker
systemctl stop docker
[root@izuf8jscryli5qtizlvbgpz ~]# systemctl stop docker [root@izuf8jscryli5qtizlvbgpz ~]# docker ps Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? [root@izuf8jscryli5qtizlvbgpz ~]# systemctl start docker [root@izuf8jscryli5qtizlvbgpz ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@izuf8jscryli5qtizlvbgpz ~]#
二、gogs镜像
1、创建本地目录
mkdir -p /var/gogs
[root@izuf8jscryli5qtizlvbgpz ~]# mkdir -p /var/gogs
2、拉取gogs镜像
docker pull gogs/gogs
[root@izuf8jscryli5qtizlvbgpz ~]# docker pull gogs/gogs Using default tag: latest latest: Pulling from gogs/gogs 4fe2ade4980c: Pull complete a7b9945218f9: Pull complete bf4b8ed375d0: Pull complete 803da33237d7: Pull complete 57e8f128435e: Pull complete 089a14e63d5d: Pull complete 2c685a35c099: Pull complete 7fa60038a9fc: Pull complete 303546907140: Pull complete f6ca78318eb9: Pull complete Digest: sha256:53cb40f1c90b0bfba78d059c9f547513989d92001ede4b4ce9a4219199c39d36 Status: Downloaded newer image for gogs/gogs:latest
3、查看镜像,这时候还没有启动gogs
[root@izuf8jscryli5qtizlvbgpz ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE gogs/gogs latest bd66c686064b 3 weeks ago 91.8MB hello-world latest 4ab4c602aa5e 4 weeks ago 1.84kB elasticsearch latest 671bb2d7da44 4 months ago 486MB kibana latest 006eb7921543 5 months ago 389MB training/webapp latest 6fae60ef3446 3 years ago 349MB [root@izuf8jscryli5qtizlvbgpz ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
4、初始化运行gogos
[root@izuf8jscryli5qtizlvbgpz ~]# docker run -d --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs 673ad1e400541e5cf3b15624ac3cd97287b4ad5edefbd6c02d6a9e8c66083c11 [root@izuf8jscryli5qtizlvbgpz ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 673ad1e40054 gogs/gogs "/app/gogs/docker/st…" 5 seconds ago Up 4 seconds 0.0.0.0:10022->22/tcp, 0.0.0.0:10080->3000/tcp gogs
参数:
-d 后台运行
--name 定义容器名称
-p 这里两个-p是容器和宿主主机的端口映射
-v 之前创建的目录,数据存储在宿主主机
注意:
1.这里记得在阿里云后台把10080端口打开,后面访问的是这个端口,端口并非固定,自己可以更改。运行后也可更改,详细百度docker相关知识。
2.docker run 初始化运行之后不要再使用 会再重置到配置页面
5、停止与启动gogs
CONTAINER ID 容器id 这id初始化后会变
name 容器名称
停止和启动使用id和name都可以,这里推荐使用name
docker stop gogs
docker start gogs
docker stop 673ad1e40054
docker start 673ad1e40054
[root@izuf8jscryli5qtizlvbgpz ~]# docker stop gogs gogs [root@izuf8jscryli5qtizlvbgpz ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@izuf8jscryli5qtizlvbgpz ~]# docker start gogs gogs [root@izuf8jscryli5qtizlvbgpz ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 673ad1e40054 gogs/gogs "/app/gogs/docker/st…" 8 minutes ago Up 3 seconds 0.0.0.0:10022->22/tcp, 0.0.0.0:10080->3000/tcp gogs [root@izuf8jscryli5qtizlvbgpz ~]# docker stop 673ad1e40054 673ad1e40054 [root@izuf8jscryli5qtizlvbgpz ~]# docker start 673ad1e40054 673ad1e40054 [root@izuf8jscryli5qtizlvbgpz ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 673ad1e40054 gogs/gogs "/app/gogs/docker/st…" 9 minutes ago Up 5 seconds 0.0.0.0:10022->22/tcp, 0.0.0.0:10080->3000/tcp gogs [root@izuf8jscryli5qtizlvbgpz ~]#
三、gogs配置
1、数据库新建gogs
由于没有在docker里安装mysql,直接宿主主机mysql里面新建数据库gogs
2、gogs页面配置
下面就到了登录页面,自己可以注册下
后面就可以新建仓库等等操作,不过这里有一点要注意,那就是如果是ssh免密登录记得带上本地的公钥
这里是第一次使用docker,感觉安装gogs起来也很简单。安装后的常规操作就不讲了。