Docker 介绍
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。总结一句话:使用 Docker 更为方便!相互之间互不影响!更加便捷!
Docker 安装
作者 Linux 版本:Linux 5.8.0-59-generic 20.04.1-Ubuntu(可通过 uname -a 查看使用版本信息)
- 更新 apt-get 包索引
sudo apt-get udpate
- 安装 apt 依赖包,用于通过 HTTPS 来获取仓库:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
- 添加 Docker 的 GPG 密钥 ``` 官方,不推荐 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg —dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
阿里云推荐 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg —dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
4. 设置稳定仓库
官方 不推荐 echo \ “deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
阿里云推荐 $ sudo add-apt-repository “deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable”
5. 安装 Docker 引擎
更新包:sudo apt-get update
安装最新版本的Docker Engine和containerd:sudo apt-get install docker-ce docker-ce-cli containerd.io
安装指定版本(列出版本):apt-cache madison docker-ce
以下为docker版本
docker-ce | 5:20.10.8~3-0~ubuntu-focal | https://mirrors.aliyun.com/docker-ce/linux/ubuntu focal/stable amd64 Packages docker-ce | 5:20.10.8~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages docker-ce | 5:20.10.7~3-0~ubuntu-focal | https://mirrors.aliyun.com/docker-ce/linux/ubuntu focal/stable amd64 Packages docker-ce | 5:20.10.7~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages docker-ce | 5:20.10.6~3-0~ubuntu-focal | https://mirrors.aliyun.com/docker-ce/linux/ubuntu focal/stable amd64 Packages
选择指定版本安装:$ sudo apt-get install docker-ce=5:20.10.8~3-0~ubuntu-focal docker-ce-cli=5:20.10.8~3-0~ubuntu-focal containerd.io
6. 查看 Docker 版本

<a name="T9dV4"></a>
# GitLab 安装
1. 查询可用docker镜像
docker search gitlab

2. 下载镜像
docker pull beginor/gitlab-ce:latest
3. 创建管理的相关目录 etc(配置) 、log(日志) 、data(数据). (把文件映射到容器外,便于之后管理和升级)并添加权限。
mkdir -p /usr/local/gitlab/etc mkdir -p /usr/local/gitlab/log mkdir -p /usr/local/gitlab/data
chmod 777 /usr/local/gitlab/etc chmod 777 /usr/local/gitlab/log chmod 777 /usr/local/gitlab/data
4. 启动镜像
docker run —detach —publish 8443:443 —publish 8888:80 —publish 8222:22 —name gitlab —restart unless-stopped —volume /usr/local/gitlab/etc:/etc/gitlab —volume /usr/local/gitlab/log:/var/log/gitlab —volume /usr/local/gitlab/data:/var/opt/gitlab —privileged=true beginor/gitlab-ce:latest
参数说明
将http:443映射到外部端口8443–publish 8443:443 80映射到外部端口8888–publish 8888:80将web 22映射到外部端口8222–publish 8222:22将ssh 运行容器名–name gitlab 重启策略–restart unless-stopped 挂载目录–volume /usr/local/gitlab/etc:/etc/gitlab 挂载目录–volume /usr/local/gitlab/log:/var/log/gitlab 挂载目录–volume /usr/local/gitlab/data:/var/opt/gitlab 使得容器内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限–privileged=true
等待返回一串字符串,就说明启动成功了<br />
5. 修改配置文件 gitlab.rb
vi /usr/local/gitlab/etc/gitlab.rb
如果使用公有云且配置了域名了,可以直接设置为域名,如下
如果没有域名,则直接使用宿主机的ip
external_url ‘http://gitlab.redrose2100.com‘
如果有域名,这里也可以直接使用域名
如果没有域名,则直接使用宿主机的ip地址
gitlab_rails[‘gitlab_ssh_host’] = ‘gitlab.redrosee2100.com’
设置时区为东八区,即北京时间
gitlab_rails[‘time_zone’] = ‘Asia/Shanghai’
邮箱配置
gitlab_rails[‘smtp_enable’] = true gitlab_rails[‘smtp_address’] = “smtp.qq.com” # 邮箱服务器 gitlab_rails[‘smtp_port’] = 465 # 邮箱服务对应的端口号 gitlab_rails[‘smtp_user_name’] = “xxx@qq.com” # 发件箱的邮箱地址 gitlab_rails[‘smtp_password’] = “xxxxxxxxxxx” # 发件箱对应的授权码,注意不是登录密码,是授权码 gitlab_rails[‘smtp_domain’] = “qq.com” gitlab_rails[‘smtp_authentication’] = “login” gitlab_rails[‘smtp_enable_starttls_auto’] = true gitlab_rails[‘smtp_tls’] = true gitlab_rails[‘gitlab_email_enabled’] = true gitlab_rails[‘gitlab_email_from’] = ‘xxx@qq.com’ # 发件箱地址 gitlab_rails[‘gitlab_email_display_name’] = ‘gitlab.xxx.com’ # 显示名称 gitlab_rails[‘gitlab_email_reply_to’] = ‘noreply@example.com’ # 提示不要回复
6. 重启 GitLab
docker restart gitlab docker exec -it gitlab bash gitlab-ctl restart
7. 查看 Root 默认密码
cat /usr/local/gitlab/etc/initial_root_password
8. 登录 Root 账户
- http://IP地址:8888 root password

9. 设置账户、团队、项目、默认下载地址
进入gitlab bash:docker exec -it gitlab bash
修改端口号:vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
host:xxx.xxx.xxx.xxx(local IP) port:8888
重启服务:gitlab-ctl restart
10. 常用指令
设置 Docker 自启动: sudo systemctl enable docker 进入 GitLab Bash(可测试邮件):docker exec -it gitlab bash gitlab-rails console ```