docker入门学习(二)使用docker安装软件(二)


Docker安装gitlab

1:拉取gitlab镜像

docker pull gitlab/gitlab-ce  

生成挂载目录

mkdir -p /usr/local/gitlab/config
mkdir -p /usr/local/gitlab/log
mkdir -p /usr/local/gitlab/data

启动命令

docker run -itd 
 -p 443:443 -p 80:80 -p 222:22
--name gitlab --restart always --privileged=true  
-v /usr/local/gitlab/config:/etc/gitlab    
-v /usr/local/gitlab/log:/var/log/gitlab   
-v /usr/local/gitlab/data:/var/opt/gitlab   
 gitlab/gitlab-ce

- 运行Gitlab容器

命令解释:

-i :以交互模式运行容器,通常与 -t 同时使用命令解释

-t :为容器重新分配一个伪输入终端,通常与 -i 同时使用

-d :后台运行容器,并返回容器ID

-p:80:80 将容器内80端口映射至宿主机80端口,这是访问gitlab的端口

-p:222:22 将容器内22端口映射至宿主机222端口,这是访问ssh的端口

-v /usr/local/gitlab/config:/etc/gitlab 将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab/etc目录下,若宿主机内此目录不存在将会自动创建,其他两个挂载同这个一样

–restart always :容器自启动

–privileged=true :让容器获取宿主机root权限

–name gitlab :设置容器名称为gitlab

gitlab/gitlab-ce :镜像的名称,这里也可以写镜像ID

docker run -v挂载目录时,若本地没有该目录挂载时会自动创建。

查看
#ls /home/

# ls /home/gitlab/

# docker ps

调整gitlab配置
# 通过打开映射出来的配置文件(windows右击打开编辑)

vim /usr/local/gitlab/config/gitlab.rb

# 配置http协议所使用的访问地址,不加端口号默认为80(这里需要改成8001,因为外面的HTTP 克隆地址会根据这里生成 ,gitlab的页面访问端口也会改变)

external_url 'http://127.0.0.1:80'

# 配置ssh协议所使用的访问地址和端口(这里需要改成222,因为外面的SSH 克隆地址会根据这里生成 )

gitlab_rails['gitlab_ssh_host'] = '127.0.0.1'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run时22端口映射的222端口

# 重启gitlab容器

docker restart gitlab

root密码修改
# 进入容器内部

docker exec -it gitlab /bin/bash

# 进入控制台

gitlab-rails console -e production

# 查询id为1的用户,id为1的用户是超级管理员

user = User.where(id:1).first

# 修改密码为root123456(密码需要超过八位别单独出现某种字符)

user.password='root123456'

# 保存

user.save!

# 退出

exit

Docker安装Jenkins

搜索 Jenkins 镜像

docker search jenkins

这里,我们选择第二个版本的镜像,因为这个是 Jenkins 官网里面推荐的 Docker 镜像,同时第一个也提示了我们已经废弃了。

2、拉取 Jenkins 镜像

docker pull jenkins/jenkins

该命令直接拉取的最新版本(latest)的镜像,我们还可以选择下面几个推荐的版本:

jenkins/jenkins:lts-jdk11:基于 JDK11 的最新 LTS 版本;
jenkins/jenkins:alpine:Alpine 版本;
jenkins/jenkins:latest-jdk8:基于 JDK8 的最新版本;

更多 TAG 版本的 Jenkins 可以查看 Docker Hub 官网:https://registry.hub.docker.com/r/jenkins/jenkins/tags


二、运行 Jenkins 容器
1、创建 Jenkins 挂载目录

mkdir -p /usr/local/jenkins
chmod 777 /usr/local/jenkins

注意: 创建挂载目录的同时要给该目录配置权限 777,如果权限不足的话,到时进行目录挂载的时候会失败导致无法启动 Jenkins 容器。

2、创建并启动 Jenkins 容器

docker run -d \
-p 8888:8080 \
-p 50000:50000 \
-v /usr/local/jenkins:/var/jenkins_home \
-v /etc/localtime:/etc/localtime \
--restart=always \
--name=jenkins \
jenkins/jenkins

-d:后台运行容器;
-p 8888:8080:将容器的 8080 端口映射到服务器的 8888 端口;
-p 50000:50000:将容器的 50000 端口映射到服务器的 50000 端口;
-v /usr/local/jenkins:/var/jenkins_home:将容器中 Jenkins 的工作目录挂载到服务器的 /usr/local/jenkins;
-v /etc/localtime:/etc/localtime:让容器使用和服务器同样的时间设置;
--restart=always:设置容器的重启策略为 Docker 重启时自动重启;
--name=jenkins:给容器起别名;
3、查看是否启动成功

查看是否在运行:

docker ps -l

查看启动日志:

docker logs jenkins

如果没有启动成功的话,可以排查一下挂载的目录是否正确,比如是否配了目录权限等。

三、访问和初始化 Jenkins


管理员的初始密码在 Jenkins 的工作目录下:/var/jenkins_home/secrets/initialAdminPassword,我们可以进容器内部去查看,也可以在我们挂载的目录下查看:

cat /usr/local/jenkins/secrets/initialAdminPassword


在下一个插件安装页面上,我们选择安装推荐的插件即可,下面是推荐的插件安装页面:

安装完成后,会进入管理员创建页面,可以选择使用admin账户继续,也可以创建一个新的管理员用户(建议创建新的管理员用户,方便管理账号密码):

完成之后就是欢迎界面了: