美文网首页其它DevOps
docker中安装配置jenkins

docker中安装配置jenkins

作者: TheRaging | 来源:发表于2021-11-14 01:36 被阅读0次
    //创建桥接网络
    docker network create jenkins
    

    为了在Jenkins节点里执行docker命令,下载并运行镜像docker:dind。

    docker run 
      --name jenkins-docker 
      --rm 
      --detach 
      --privileged 
      --network jenkins 
      --network-alias docker 
      --env DOCKER_TLS_CERTDIR=/certs 
      --volume jenkins-docker-certs:/certs/client 
      --volume jenkins-data:/var/jenkins_home 
      --publish 2376:2376 
      docker:dind 
      --storage-driver overlay2
    

    命令说明

    • --name jenkins-docker: (可选) 指定用于运行镜像的docker容器名。不指定默认会生成一个唯一的容器名。
    • --rm: (可选) 当容器停止时会被自动删除,也包括下面提到的jenkinsci/blueocean这个容器调用时所使用的缓存。
    • --detach: (可选) 容器在后台运行。此实例可以通过运行docker container stop jenkins-docker停止,并通过docker container start jenkins-docker再次启动。
    • --privileged: 在当前docker中运行其他docker需要特权访问才能正常运行。使用较新的linux内核版本可放宽此要求。
    • --network jenkins: 让容器使用先前步骤2创建的网络。
    • --network-alias docker: 使docker作为容器的网络别名,在上边声明的jenkins网络中可作为主机名使用。
    • --env DOCKER_TLS_CERTDIR=/certs: 允许在docker服务器中使用TLS。尽管它需要使用下面提到的volume, 但由于使用了特权容器,因此建议这样做。此环境变量指定的是Docker TLS证书的根目录。
    • --volume jenkins-docker-certs:/certs/client: 将容器中的/certs/client目录映射到之前创建的名为jenkins-docker-certs的volume上。
    • --volume jenkins-data:/var/jenkins_home: 将容器中的/var/jenkins_home目录映射到之前创建的名为jenkins-data的volume上。这将允许由docker容器守护进程控制的其他docker容器从Jenkins装载数据。
    • --publish 2376:2376: (可选) 公开主机上的docker守护进程端口。这对在主机上执行docker命令去控制其内部的docker守护进程很有用。
      docker:dind: 要运行的docker:dind镜像(没有会自动下载)。也可在之前通过命令 docker image pull docker:dind 下载该镜像。

    下载并运行镜像 jenkinsci/blueocean

    docker container run 
      --name jenkins-blueocean 
      --rm 
      --detach 
      --network jenkins 
      --env DOCKER_HOST=tcp://docker:2376 
      --env DOCKER_CERT_PATH=/certs/client 
      --env DOCKER_TLS_VERIFY=1 
      --publish 8080:8080 
      --publish 50000:50000 
      --volume jenkins-data:/var/jenkins_home 
      --volume jenkins-docker-certs:/certs/client:ro 
      jenkinsci/blueocean 
    

    命令说明

    • --name jenkins-blueocean: (可选) 给docker镜像jenkinsci/blueocean的实例指定容器名,该名字可用于在docker命名中指代该容器。
    • --rm: (可选) 当容器jenkins-blueocean停止时会被自动删除。
    • --detach: (可选) 在后台运行jenkinsci/blueocean容器并显示容器ID。不指定会直接在控制台打印日志信息。
    • --network jenkins: 让容器使用先前步骤2创建的网络。能够让此容器通过docker主机名去访问第3步创建的docker守护程序。
    • --env DOCKER_HOST=tcp://docker:2376: 指定 docker,docker-compose,以及其他docker工具连接先前步骤创建的docker守护程序 要用的环境变量。
    • --publish 8080:8080: 映射容器jenkinsci/blueocean的8080端口到主机的8080端口。前面的数字代表主机的端口,后面的数字代表容器的端口。因此如果我们指定参数 -p 49000:8080 , 就能在主机上使用端口49000去访问Jenkins。
    • --publish 50000:50000: (可选)映射jenkinsci/blueocean的50000端口到主机的50000端口。仅当你在其他机器上设置了一个或多个基于JNLP的Jenkins代理时才需要这样做,这些代理又与jenkinsci/blueocean容器(充当"主" Jenkins服务器,或仅充当"Jenkins主服务器")有交互。默认情况下,基于JNLP的Jenkins代理通过TCP端口50000与Jenkins主服务器通信,你可以通过页面"Configure Global Security"改变在Jenkins主服务器上的这个端口。如果你要改变Jenkins主服务器用于JNLP代理的TCP端口为 51000 ,那么你就要重启Jenkins容器,并且在启动命令上加发布选项 --publish 52000:51000,后面的数字51000代表Jenkins主服务器上你要改变的值,前面的数字52000代表Jenkins主服务器所在的主机端口(端口用于基于JNLP的Jenkins代理与Jenkins主服务器的通信)。
    • --volume jenkins-data:/var/jenkins_home: 映射容器里的路径/var/jenkins_home到名为jenkins-data的docker volume中。也可以将容器里的路径/var/jenkins_home映射到本地计算机的路径上来代替映射到docker volume上,如指定选项--volume $HOME/jenkins:/var/jenkins_home,对应的本机路径一般为 /Users//jenkins 或 /home//jenkins。注意如果你为此更改了源volume或路径,上面创建的docker:dind容器的volume也需要相应更新。
    • --volume jenkins-docker-certs:/certs/client:ro: 映射路径/certs/client到先前创建的名为jenkins-docker-certs的volume上。这会使连接docker守护程序所需的客户端TLS证书在环境变量DOCKER_CERT_PATH指定的路径中可用。
      jenkinsci/blueocean: 要启动的镜像jenkinsci/blueocean。如果该镜像还未下载,会自动下载该镜像。如果该镜像有更新,也会自动下载镜像更新文件。
    //查看日志 从日志里查找jenkins的密码
    docker logs 容器ID或者容器名称  
    

    设置maven 和jdk 挂载目录

    maven和jdk都可以安装在本地 然后使用挂载目录 吧本地的目录和jenkines容器里的目录关联起来 然后就可以使用了

    -v 本地目录:jenkines容器的目录
    

    这里注意 jenkines的挂载目录一定要是不存在的文件夹才行,否则会启动容器失败

    相关文章

      网友评论

        本文标题:docker中安装配置jenkins

        本文链接:https://www.haomeiwen.com/subject/gncttrtx.html