參考於https://docs.gitlab.com/omnibus/docker/
CentOS版本
$ cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
1.下載GitLab鏡像
$ sudo docker pull gitlab/gitlab-ce
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
gitlab/gitlab-ce latest c90133431e91 2 weeks ago 1.31GB
本人因爲內網,需要設置代理。
創建目錄/etc/systemd/system/docker.service.d ,並創建http-proxy.conf文件,輸入以下內容:
$ cat /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
#proxyServer爲代理服務器地址
Environment="HTTP_PROXY=http://proxyServer:PORT"
Environment="HTTPS_PROXY=http://proxyServer:PORT"
2.啓動容器,運行鏡像
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume ~/gitlab/config:/etc/gitlab \
--volume ~/gitlab/logs:/var/log/gitlab \
--volume ~/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
如果你的機器上selinux正在運行,則用下面的方式啓動。
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume ~/gitlab/config:/etc/gitlab:Z \
--volume ~/gitlab/logs:/var/log/gitlab:Z \
--volume ~/gitlab/data:/var/opt/gitlab:Z \
gitlab/gitlab-ce:latest
- --detach 在後臺運行並打印容器ID
- --hostname 設置GitLab的訪問域名,也就是說,必須通過gitlab.example.com才能訪問(本機IP和主機名在本機瀏覽器上也不能訪問????反正我的能),該域名需要在DNS中進行域名映射,將該域名映射到GitLab所在服務器的IP地址上。
參考自<<架構探險-輕量級微服務架構>>(黃勇 著) - --restart always 爲始終重啓。默認爲no,不重啓,on-failure爲容器狀態非0時重啓
- --volume 指定目錄映射
本地位置 | 容器位置 | 用途 |
---|---|---|
~/gitlab/config | /etc/gitlab | 配置目錄 |
~/gitlab/logs | /var/log/gitlab | 日誌目錄 |
~/gitlab/data | /var/opt/gitlab | 數據目錄 |
- -p 22便是ssh端口(如果本機的ssh服務正在運行中,則容器只能創建,不能運行。本人直接把ssh服務停止了),80表示http端口,443表示https端口(默認不開啓)
查看selinux狀態
$ sestatus
#配置文件:/etc/selinux/config,SELINUX=disabled禁用selinux,修改後需重啓系統
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28
查看容器運行狀態:
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3c3188c3b411 gitlab/gitlab-ce:latest "/assets/wrapper" 11 seconds ago Up 10 seconds (health: starting) 0.0.0.0:22->22/tcp, 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp gitlab
4.容器管理
- 重啓
sudo docker restart gitlab
或
$ sudo docker exec -it gitlab bash
root@gitlab:/# gitlab-ctl reconfigure
- 停止
$ sudo docker stop gitlab
- 刪除
$ sudo docker rm gitlab