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账户继续,也可以创建一个新的管理员用户(建议创建新的管理员用户,方便管理账号密码):
完成之后就是欢迎界面了: