Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。这篇文章是我练习时,在网上找了很多资料,记录下来的笔记,给大家演示一下我的Docker安装Gitlab的安装历程,O(∩_∩)O哈哈~
安装环境 :CentOS
服务器 :腾讯云
Docker Compose是一个用来定义和运行复杂应用的Docker工具。使用Compose,你可以在一个文件中定义一个多容器应用,然后使用一条命令来启动你的应用,完成一切准备工作。
一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose,不再需要使用shell脚本来启动容器。在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器。完整的命令列表如下:
build
构建或重建服务help
命令帮助kill
杀掉容器logs
显示容器的输出内容port
打印绑定的开放端口ps
显示容器pull
拉取服务镜像restart
重启服务rm
删除停止的容器run
运行一个一次性命令scale
设置服务的容器数目start
开启服务stop
停止服务up
创建并启动容器运行下边的命令来安装 Compose:
curl -L https://github.com/docker/compose/releases/download/1.3.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
注意:如果你在安装的时候出现了 “Permission denied” 的错误信息,这说明你的 /usr/local/bin 目录是不可写的,你需要使用超级用户来安装。运行 sudo -i , 然后运行上边的两个命令,然后 exit 退出。
可选,你也可以利用pip方式进行安装。
CentOS上需要先行安装yum的一个额外的包,这个包里面才有Python-pip,缺省的没有。运行下边命令检查Linux是否安装Python-pin包:
yum install python-pip
yum -y install epel-release
yum install python-pip
pip install --upgrade pip
sudo pip install -U docker-compose
到这里Compose已经安装完成。你可以使用 docker-compose --version
来进行测试 。
利用Docker Compose能够快速搭建Gitlab,执行下面命令配置:
wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml
启动Gitlab,执行命令:
docker-compose up
到这里安装就结束了;Gitlab安装完成了,你可以执行docker ps
来查看容器的运行。
首先我们需要先拉取gitlab镜像到本地:
docker pull sameersbn/gitlab:9.2.5
当然也可以使用latest标签去拉取代码仓库HEAD中最新的版本:
docker pull sameersbn/gitlab:latest
或者,你可以直接在本地创建镜像:
docker build -t sameersbn/gitlab github.com/sameersbn/docker-gitlab
通过下面三个步骤来启动gitlab、postgresql和redis三个container。
步骤1. 启动postgresql container:
docker run --name gitlab-postgresql -d \
--env 'DB_NAME=gitlabhq_production' \
--env 'DB_USER=gitlab' --env 'DB_PASS=password' \
--env 'DB_EXTENSION=pg_trgm' \
--volume /srv/docker/gitlab/postgresql:/var/lib/postgresql \
sameersbn/postgresql:9.6-2
步骤2. 启动redis container:
docker run --name gitlab-redis -d \
--volume /srv/docker/gitlab/redis:/var/lib/redis \
sameersbn/redis:latest
步骤3. 启动gitlab container:
docker run --name gitlab -d \
--link gitlab-postgresql:postgresql --link gitlab-redis:redisio \
--publish 10022:22 --publish 10080:80 \
--env 'GITLAB_PORT=10080' --env 'GITLAB_SSH_PORT=10022' \
--env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \
--env 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' \
--env 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' \
--volume /srv/docker/gitlab/gitlab:/home/git/data \
sameersbn/gitlab:9.2.5
简书链接: http://www.jianshu.com/p/2a6ac907d35d
Docker Compose | Docker 中文指南
Docker-Compose的GitHub