consul
代码语言:javascript复制# 拉取
docker pull consul
# 启动
docker run -d -p 8500:8500 -v /usr/local/docker/consul:/consul/data -e CONSUL_BIND_INTERFACE='eth0' --name=cxyConsul 镜像id agent -server -bootstrap -ui -node=node-1 -client='0.0.0.0' -datacenter=cxy
server: 以server身份启动。默认是client
bootstrap-expect:集群要求的最少server数量,当低于这个数量,集群即失效。
data-dir:data存放的目录,更多信息请参阅consul数据同步机制
node:节点id,集群中的每个node必须有一个唯一的名称。默认情况下,Consul使用机器的hostname
bind:监听的ip地址。默认绑定0.0.0.0,可以不指定。表示Consul监听的地址,而且它必须能够被集群中的其他节点访问。Consul默认会监听第一个private IP,但最好还是提供一个。生产设备上的服务器通常有好几个网卡,所以指定一个不会出错
client: 客户端的ip地址,0.0.0.0是指谁都可以访问(不加这个,下面的ui :8500无法访问)
ui: 可以访问UI界面
-config-dir指定配置文件夹,Consul会加载其中的所有文件
-datacenter 指定数据中心名称,默认是dc1
Jenkins
根据镜像OFFICIAL标签判断,位列第一、名字为jenkins的是 Jenkins 官方提供的镜像。我们是不是应该使用这个官方镜像呢?
如果你看过 Jenkins 文档中 Docker 安装 小节,会发现官方推荐使用的镜像是jenkinsci/blueocean,该镜像包含当前的长期支持 (LTS) 的 Jenkins 版本 (可以生产使用) ,并捆绑了所有 Blue Ocean 插件和功能。
第一次安装的时候使用的是jenkins镜像,其集成的 Jenkins 版本比较高,结果出现好多插件不兼容的情况,对于我等小白来说是一件比较麻烦的事。
这里我们果断使用jenkinsci/blueocean镜像,使用docker pull命令拉取:
代码语言:javascript复制# 拉取镜像
docker pull jenkinsci/blueocean
# 启动容器
docker run
--name cxyJenkins-blueocean
-d
-p 8081:8080
-p 50000:50000
-v /usr/local/docker/jenkins:/var/jenkins_home
jenkinsci/blueocean
# 报错
[root@centos8 jenkins]# docker logs 06a6e888dbf5
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
# 修改
sudo chown -R 1000:1000 /usr/local/docker/jenkins
# 成功
root@centos8 jenkins]# sudo chown -R 1000:1000 /usr/local/docker/jenkins
[root@centos8 jenkins]# docker start 06a6e888dbf5
06a6e888dbf5
[root@centos8 jenkins]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
06a6e888dbf5 jenkinsci/blueocean "/sbin/tini -- /usr/…" 4 minutes ago Up 3 seconds 0.0.0.0:50000->50000/tcp, 0.0.0.0:8081->8080/tcp cxyJenkins-blueocean
63785bef8658 6ad6cb039dfa "/docker-entrypoint.…" 2 weeks ago Up 10 minutes 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, 8080/tcp cxyZookeeper
992d0be96bc1 mysql:8.0.20 "docker-entrypoint.s…" 5 weeks ago Up 10 minutes 33060/tcp, 0.0.0.0:3307->3306/tcp mysqlSlave
23ceac64fab5 mysql:8.0.20 "docker-entrypoint.s…" 5 weeks ago Up 10 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysqlMaster
48f8725736c3 redis:6.0.5 "docker-entrypoint.s…" 5 weeks ago Up 10 minutes 6379/tcp, 0.0.0.0:7003->7003/tcp redisSentinel
38c2f6e00354 redis:6.0.5 "docker-entrypoint.s…" 5 weeks ago Up 10 minutes 6379/tcp, 0.0.0.0:6666->6666/tcp cxyredis
# 访问 以上如果一切正常,现在就可以通过http://<ipaddress>:8081 访问 Jenkins 的 Web 界面了。
# 管理员初始化密码
[root@centos8 jenkins]# docker exec -it 06a6e888dbf5 /bin/bash
bash-5.0$ cat /var/jenkins_home/secrets/initialAdminPassword
c994db795bb9450399b48e54efbc1b47