解决docker搭建gitlab时容器不停重启的问题

在我按照gitlab的官方文档搭建后,准备进入容器修改配置文件时,发现进入不了。显示错误时容器正在重启,如下所示

[root@gitlab ~]# docker exec -it gitlab /bin/bash
Error response from daemon: Container 9780aafac4ed8366f359418e562c8038017e8a9d5675f34ed3aa6da9d312826b is restarting, wait until the container is running

然后我docker log 查看日志时,发现问题是在于配置文件没有权限创建的问题

[root@gitlab ~]# docker logs gitlab
....
....
....
Installing gitlab.rb config...
cp: cannot create regular file '/etc/gitlab/gitlab.rb': Permission denied
...
...
...

而这个权限问题是因为SElinux开启的缘故,官方文档已经给出了在SELinux开启的情况下创建容器的命令了。。

在映射卷的命令后加上":Z",如--volume /srv/gitlab/config:/etc/gitlab:Z

这个含义我也不太清楚,只能大致猜测这个是让容器在SELinux的干预下能操作文件吧

总结:

搭建环境仔细查看官方文档

有问题查看日志,配合搜索引擎以及官方文档排查问题

搭建文档地址:https://docs.gitlab.com/omnibus/docker/README.html 

补充:下面介绍下gitlab-docker 一直无限重启的解决方案,新建个容器

用docker搭建gitlab,这次因为自己的服务器扩容,所以直接关机了,没有在docker中关闭gitlab,然后启动gitlab的时候,一直无限重启,如图

百度了一圈,没有什么结果,之前刚开始搭建那会儿,也一直出现这种情况,因为当时情况比较多,处理着处理着问题就解决,所以,个人怀疑容器坏了,又重新新建了一个容器,最后正常了,因为宿主机的映射关系还是原来的映射关系。最后发生这种情况的原因也不知道,新建个容器就正常了。

新建容器命令还是原来的,容器名改变下就好了

docker run -d  -p 443:443 -p 8077:80 -p 222:22 --name gitlab8077 --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
docker run -d \
--hostname gitlab \
--publish 8443:443 --publish 80:80 --publish 2222:22 \
--name gitlab2 \
--privileged=true \
--volume /home/dockerfile/gitlab/config:/etc/gitlab \
--volume /home/dockerfile/gitlab/logs:/var/log/gitlab \
--volume /home/dockerfile/gitlab/data:/var/opt/gitlab \
twang2218/gitlab-ce-zh

这时,旧的容器可以删了。

到此这篇关于docker搭建gitlab时容器不停重启的问题的文章就介绍到这了,更多相关docker搭建gitlab容器重启内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Gitlab-runner+Docker实现自动部署SpringBoot项目

    目录 1.环境要求 当前我的服务版本 2.主要流程 3.GitlabRunner 安装和注册 3.1 安装 总结一共就2个步骤: 1.添加gitlab官方库: 2.命令安装: 3.2 开始注册 4.制作脚本! 重要!!! 3个文件位置图 .gitlab-ci.yml 5.测试 6.常见问题 本文基于Gitlab CI/CD及Docker快速实现项目的自动部署. 注意:本文较长,浏览需要12分钟左右. 1.环境要求 以下服务器的操作系统均为Centos7 服务器A:Gitlab 服务器B:Gitl

  • 解决docker容器重启之后/etc下某些配置文件被重置的问题

    1. /etc/hosts, /etc/resolv.conf和/etc/hostname容器中的这三个文件不存在于镜像,而是存在于于/var/lib/docker/containers/,在启动容器的时候,通过mount的形式将这些文件挂载到容器内部. 因此,如果在容器中修改这些文件的话,修改部分不会存在于容器的top layer,而是直接写入这三个物理文件中. 2.为什么重启后修改内容不存在了? 原因是:每次Docker在启动容器的时候,通过重新构建新的/etc/hosts文件,这又是为什么

  • 教你使用Docker搭建gitlab社区汉化版的详细过程

    一.使用Docker Compose配置启动 不知道Docker Compose的请看我的博文<手把手教你 Docker Compose的安装和使用> 1.在/root目录下创建docker-compose.yml文件 使用 vi docker-compose.yml 创建docker-compose.yml文件 (这里文件位置可以根据自己喜好修改) 2.docker-compose.yml文件内容如下 version: '2' services: gitlab: image: 'twang2

  • 基于CentOS8系统使用Docker搭建Gitlab的详细教程

    目录 一.安装Docker 二.安装GitLab 三.初始化GitLab 一.安装Docker #1.卸载旧版本 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine #2.下载需要的安装包 sudo yum install -y yum-utils #

  • 使用Docker搭建私有GitLab的两种方案

    第一种:docker安装 1.拉取开源版本镜像 2.创建对应的数据卷,分别是配置.数据.日志 3.启动容器 4.访问地址 http://ip:8080 即可打开,首次进入需要设置root的密码 第二种:rancher安装 到此这篇关于使用Docker搭建私有GitLab的两种方案的文章就介绍到这了,更多相关Docker搭建GitLab内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  • 教你Docker安装GitLab功能

    目录 概述 选择镜像 中文版 英文版 创建映射文件目录 创建并运行Gitlab容器 关闭防火墙 概述 Gitlab是一个开源分布式版本控制系统,由Ruby开发,有管理项目源代码.版本控制.代码复用与查找等功能. GitLab是一个Git的代码托管工具,有免费的社区版允许我们在本地搭建代码托管网站,也有付费的企业版网站,能够在线托管代码.传统方式是手动下载Gitlab的软件包,然后搭建相关运行环境.不过这种方式非常麻烦,而且如果要更换机器所有配置工作又得重来一边,如果有同学学过Java的话应该记得

  • 解决docker搭建gitlab时容器不停重启的问题

    在我按照gitlab的官方文档搭建后,准备进入容器修改配置文件时,发现进入不了.显示错误时容器正在重启,如下所示 [root@gitlab ~]# docker exec -it gitlab /bin/bash Error response from daemon: Container 9780aafac4ed8366f359418e562c8038017e8a9d5675f34ed3aa6da9d312826b is restarting, wait until the container

  • 使用docker搭建gitlab详解

    使用docker搭建gitlab 在服务器上直接安装gitlab,会装入Git,Redis ,postgresql,nginx等.如果主机已有redis.nginx等,配置会比较麻烦.而且以后gitlab的备份和迁移都不方便.附主机安装教程: https://about.gitlab.com/downloads/#centos7 如果将gitlab进行Docker化部署,所有服务如redis,postgresql等放在一个docker容器里,将配置.数据等文件挂载在宿主机上,备份和迁移时候只要复

  • Centos7使用docker搭建gitlab服务器

    了解到docker的优点,搭建快,运行要求资源低,最重要的是实现的功能和效果都能达到预期,于是决定使用docker来搭建gitlab服务器. 效果图如下: 系统环境:CentOS Linux release 7.1.1503 (Core) git版本:/gitlab/gitlab-ce 一.安装和启动docker 安装:yum -y install docker 启动:systemctl start docker 开机启动:systemctl enable docker 二.拉取镜像文件 doc

  • docker上快速搭建gitlab、gitlab-runer及实现CI/CD功能

    目录 1.docker上安装gitlab 1.1 拉取镜像 1.2 启动gitlab服务 1.3 配置root账号密码 2.docker上安装gitlab runner docker基本配置及命令不熟的,看我这篇 https://www.jb51.net/article/206760.htm 1.docker上安装gitlab 参考:https://www.jb51.net/article/244867.htm 1.1 拉取镜像 docker search gitlab docker pull

  • Docke实例之搭建gitlab的方法

    gitlab介绍概述 GitLab 是一个用于仓库管理系统的开源项目.使用Git作为代码管理工具,并在此基础上搭建起来的web服务.Github是公共的git仓库,而Gitlab适合于搭建企业内部私有git仓库 官网: https://about.gitlab.com/ https://github.com/gitlabhq/gitlabhq 前端:Nginx,用于页面及Git tool走http或https协议 后端:Gitlab服务,采用Ruby on Rails框架,通过unicorn实现

  • 解决Docker之mysql容器数据库更改不生效的问题

    用官方的mysql 镜像需要修改一些内容,比如配置文件的修改,DB数据文件的目录等,更改之后如果重新运行容器,改过的文件就无效了,新生成的容器不会有之前改变的内容 第一种是修改官方下载的镜像,修改之后 提交一个新的镜像文件 docker commit -m 等新生成的镜像信息, 第二种MYSQL的DB数据,容器关闭后 如果用 docker restart 重启同一容器,那么数据是正常的,如果重新docker run 容器那么数据就不会显示,因为每个容器都有一个文件地址 这就需要把数据文件挂载出来

  • 基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境的详细教程

    环境搭建概述 亲爱的家人们可以到链接:http://xiazai.jb51.net/202105/yuanma/javayaml_jb51.rar  下载所需要的yaml文件. 1.K8S是什么? K8S全称是Kubernetes,是一个全新的基于容器技术的分布式架构领先方案,基于容器技术,目的是实现资源管理的自动化,以及跨多个数据中心的资源利用率的最大化. 如果我们的系统设计遵循了kubernetes的设计思想,那么传统系统架构中那些和业务没有多大关系的底层代码或功能模块,都可以使用K8S来管

随机推荐