麒麟docker与gitlib安装
迁移好后用:
https://blog.csdn.net/weixin_45754407/article/details/138079041
一、安装docker
以下操作均在root用户下进行
1.1 查看当前操作系统版本
[root@db1 ~]# cat /etc/os-release
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Sword)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Sword)"
ANSI_COLOR="0;31"
1.2 备份yum包
cp /etc/yum.repos.d/kylin_x86_64.repo /etc/yum.repos.d/kylin_x86_64.repo_bak
1.3 下载阿里云yum源配置文件
wget -O /etc/yum.repos.d/aliyun.repo https://mirrors.aliyun.com/repo/Centos-8.repo
1.4 清除缓存并更新
yum clean all
yum makecache
1.5 查看可用yum源
yum repolist
1.6 安装软件包并设置存储库
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.7 安装docker
这里选择社区版本(CE版)
yum install docker-ce
1.8 启动服务
systemctl start docker
1.9 验证服务
docker run hello-world
输出日志
[root@db2 docker]# docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
GITLIB安装
- 拉取镜像
docker pull gitlab/gitlab-ce
- 创建GitLab配置目录
验证环境变量是否正确
echo $GITLAB_HOME
export GITLAB_HOME=/mnt/www/gitlab
mkdir -p /mnt/www/gitlab
#配置文件
mkdir -p /mnt/www/gitlab/config
#数据文件
mkdir -p /mnt/www/gitlab/logs
#日志文件
mkdir -p /mnt/www/gitlab/data
- 创建、启动容器
- 使用docker-compose.yml
docker-compose up -d 启动
# 1. 使用docker-compose 宿主机不需要配置host来发现
# 2. 无需修改源码,根目录 docker-compose up 即可
# 3. 静静等待服务启动
services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: always
hostname: '10.25.29.23'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://10.25.29.23:8099'
gitlab_rails['gitlab_shell_ssh_port'] = 222
ports:
- '8099:8099'
- '222:22'
volumes:
- '/mnt/www/gitlab/config:/etc/gitlab'
- '/mnt/www/gitlab/logs:/var/log/gitlab'
- '/mnt/www/gitlab/data:/var/opt/gitlab'
shm_size: '256m'
docker run \
--detach \
--restart always \
--name gitlab \
--privileged \
--memory 4096M \
--publish 8222:22 \
--publish 8099:80 \
--hostname 10.25.29.23 \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
这条 docker run
命令用于启动一个名为 GitLab CE(Community Edition)的 Docker 容器,并且包含了一系列的参数来配置容器的行为和环境。以下是每个参数的含义:
-
--detach
:以分离模式运行容器,即在后台运行。 -
--restart always
:设置重启策略为“always”,意味着无论容器因何种原因退出,Docker 都会自动重启它。 -
--name gitlab-ce
:为容器指定一个名称,这里是gitlab-ce
。 -
--privileged
:给予容器特权模式,这将赋予容器内进程更多的权限,类似于宿主机上的进程。注意:出于安全考虑,通常不建议在生产环境中使用特权模式。 -
--memory 4096M
:限制容器使用的最大内存为 4096 MB(4 GB)。 -
--publish 8222:22
:将容器内部的 22 端口映射到宿主机的 8222 端口,通常用于 SSH 访问。 -
--publish 8099:80
:将容器内部的 80 端口映射到宿主机的 8099 端口,通常用于 HTTP 访问。 -
--publish 8443:443
:将容器内部的 443 端口映射到宿主机的 8443 端口,通常用于 HTTPS 访问。
查看容器是否启动
docker ps -a
修改配置文件
vi /opt/gitlab/etc/gitlab.rb
external_url 'http://10.211.55.4' 或者 'http://xxx.com'
gitlab_rails['gitlab_ssh_host'] = 'http://10.211.55.4' 或者 'http://xxx.com'
gitlab_rails['gitlab_shell_ssh_port'] = 222
修改/opt/gitlab/etc/gitlab.rb 把 external_url 改成部署机器的域名或者IP地址
重启GitLab容器
# 方法1:
docker restart gitlab
# 方法2:
docker exec -it gitlab bash (各个系统不一样 有可能zsh)
gitlab-ctl reconfigure
配置Nginx使用域名访问
server {
listen 80;
server_name gitlab.xxx.com;
return 301 https://gitlab.xxx.com$request_uri;
}
server {
listen 443 ssl http2;
include https.xxx.params;
server_name gitlab.xxx.com;
# access_log off;
client_max_body_size 100m;
#root /home/www;
#index index.html;
location ~ / {
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
浏览器验证
访问https://xxx.com 就可以看到 gitlab 的登录界面了,大功告成!
三、登录 GitLab
首次登录需要执行下面的命令获取 root 用户的密码:
docker logs gitlab
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
注意:密码文件将在 24 小时后的第一次重新配置运行中自动删除。