它擁有與Github類似的功能,能夠瀏覽源代碼,管理缺陷和注釋。可以管理團隊對倉庫的訪問,它非常易於瀏覽提交過的版本並提供一個文件歷史庫。團隊成員可以利用內置的簡單聊天程序(Wall)進行交流。它還提供一個代碼片段收集功能可以輕松實現代碼復用,便於日后有需要的時候進行查找。開源中國代碼托管平台git.oschina.net就是基於GitLab項目搭建。
容器 | 虛擬機 | |
---|---|---|
啟動 | 秒級 | 分鍾級 |
硬盤使用 | 一般為MB |
一般為GB |
性能 | 接近原生 | 弱於 |
系統支持量 | 單機支持上千個容器 |
docker使用客戶端-服務端(C/S)架構模式,使用遠程API來管理和創建docker容器。
docker容器通過docker鏡像來創建。
標題 | 說明 |
---|---|
鏡像(images) | Docker鏡像是用於創建Docker容器的模板。 |
容器(Container) | 容器是獨立運行的一個或一組應用。 |
客戶端(Client) | docker客戶端通過命令行或者其他工具使用Docker API與Docker的守護進程通信。 |
主機(Host) | 一個物理或者虛擬機的機器用於執行Docker守護進程和容器。 |
倉庫(Registry) | Docker倉庫用來保存鏡像,可以理解為代碼控制中的代碼倉庫。Docker Hub提供了龐大的鏡像集合供使用。 |
Docker Machine |
內存 | ip | |
---|---|---|
docker01 | 3G |
安裝docker
注意:這里我們是從清華源上面下載的docker
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo yum install docker-ce -y systemctl start docker && systemctl enable docker [root@docker01 ~]# docker version Client: Docker Engine - Community Version: 19.03.3 API version: 1.40 Go version: go1.12.10 Git commit: a872fc2f86 Built: Tue Oct 8 00:58:10 2019 OS/Arch: linux/amd64 Experimental: false
加速教程,當配置某一個加速器地址之后,若發現拉取不到鏡像,請切換到另一個加速器地址。centos7安裝docker之后沒有daemon.json文件,需要自己動手創建一個
mkdir -p /etc/docker tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://4pwh0wn5.mirror.aliyuncs.com"] } EOF #更新配置 sudo systemctl daemon-reload sudo systemctl restart docker
docker search gitlab #查看鏡像
docker pull gitlab/gitlab-ce #拉取
#創建 config 目錄 mkdir -p /home/gitlab/config #創建 logs 目錄 mkdir -p /home/gitlab/logs #創建 dat 目錄 mkdir -p /home/gitlab/data
docker run -d \ --hostname 10.0.0.11 \ --network --publish 7001:443 --publish 7002:80 --publish 7003:22 \ --name gitlab \ --restart always \ --volume /home/gitlab/config:/etc/gitlab \ --volume /home/gitlab/logs:/var/log/gitlab \ --volume /home/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce
參數說明:
參數名稱 | 參數說明 |
---|---|
detach | 指定容器運行於前台還是后台 |
hostname | 指定主機地址,如果有域名可以指向域名 |
publish | 指定容器暴露的端口,左邊的端口代表宿主機的端口,右邊代表容器的端口 |
name | 容器名字 |
restart always | 跟隨docker服務啟動 |
volume |
external_url 'http://10.0.0.11' gitlab_rails['gitlab_ssh_host'] = '' gitlab_rails['gitlab_shell_ssh_port'] = 703 #配置gitlab通過smtp發送郵件 gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = '1354586675@qq.com' gitlab_rails['gitlab_email_display_name'] = 'china' gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.qq.com" gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "1354586675@qq.com" gitlab_rails['smtp_password'] = "xxxxxx" gitlab_rails['smtp_domain'] = "qq.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = true
docker exec -it gitlab /bin/bash #進入gitlab容器服務
gitlab-ctl reconfigure #重置gitlab客戶端的命令
docker restart gitlab #這里重啟容器也需要耐心等待。
[root@docker01 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 67b087a72785 gitlab/gitlab-ce "/assets/wrapper" 41 minutes ago Up 34 minutes (healthy) 0.0.0.0:7003->22/tcp, 0.0.0.0:7002->80/tcp, 0.0.0.0:7001->443/tcp gitlab [root@docker01 ~]# netstat -lnt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 :::7001 :::* LISTEN tcp6 0 0 :::7002 :::* LISTEN tcp6 0 0 :::7003 :::* LISTEN
gitlab-ctl reconfigure // 重新應用 gitlab 的配置 gitlab-ctl restart // 重啟 gitlab 服務 gitlab-ctl status // 查看 gitlab 運行狀態 gitlab-ctl stop // 停止 gitlab 服務 gitlab-ctl tail // 查看 gitlab 運行日志
注:這里並沒有像其他博主修改什么端口,在創建容器時也需要查看端口是否被占用,如果被占用會出現502的報錯。