Hello,各位!这一讲开始,我们就要开始我们的应用咯!请坐稳扶好,咱要发车了!

为什么我们要部署Jenkins呢?

安装很多有趣的第三方程序有可能会是我们日常工作或个人开发时会遇到的遇到的一些基本需求,所以是的,这次我们就以Docker容器的形式部署Jenkins为例。
首先,先让我们从第一步开始。

让我们逛下Docker hub

docker打包netcore项目 docker打包web应用_Docker


好的,我们成功地在Hub里找到了Jenkins。

点进这个jenkins详情页里,

docker打包netcore项目 docker打包web应用_docker_02


我们会注意到右边有条下载命令:

docker pull jenkins

所以,这意味着我们通过在Terminal里执行这条命令的方式下载该镜像。

开始下载

当我们在Terminal里粘贴了这条命令,并执行。你可能会期待它显示成功的信息,但你可能得到的是以下信息:

Using default tag: latest
Error response from daemon: manifest for jenkins:latest not found: manifest unknown: manifest unknown

然后你可能会想到要不试试指定某个版本,然后回到Docker hub的jenkins网页往下翻可用tag,如下图所示:

docker打包netcore项目 docker打包web应用_Docker_03


但在这个项目的话,我们可以执行下列命令来下载:

docker pull jenkins/jenkins

输入这条命令后,Terminal应该就会显示下载信息了,在国内的话可能要多花费一些时间进行下载,页可以考虑更换一下镜像源,应该已经有很多博主发过如何更换的方法的文章了,我这里便不赘述。

下载完成后

我们可以查看下jenkins是否存在于我们的image列表里了:

docker image ls

输出如下:

REPOSITORY        TAG       IMAGE ID       CREATED       SIZE
jenkins/jenkins   latest    256d8774b5a7   3 days ago    567MB
ubuntu            latest    1318b700e415   10 days ago   72.8MB

然后我们可以检视下jenkins的信息:

docker inspect [IMAGE ID]

然后找到我们比较感兴趣的下列信息:

"ExposedPorts": {
                "50000/tcp": {},
                "8080/tcp": {}
            }

8080是Jenkins容器实际运行时所使用的端口

现在,为了通过我们现在使用的机器访问Jenkins容器,我们需要把8080映射到一些外部端口上,所以我们执行下列命令:

docker run -d -p 80:8080 jenkins/jenkins

这条命令的翻译是以后台模式启动一个容器,将容器的 8080 端口映射到主机的 80 端口.

之后我们验证下我们的容器是否开始运行了:

docker ps

输出信息应该类似下面所示:

CONTAINER ID   IMAGE             COMMAND                  CREATED         STATUS         PORTS                                              NAMES
51f373fdb919   jenkins/jenkins   "/sbin/tini -- /usr/…"   8 minutes ago   Up 7 minutes   50000/tcp, 0.0.0.0:80->8080/tcp, :::80->8080/tcp   pedantic_nash
9017cdca79ce   ubuntu            "bash"                   2 hours ago     Up 2 hours                                                        infallible_herschel

让我们通过浏览器验证下

我们在浏览器里输入:

localhost:80

按回车,然后我们应该可以看到以下页面

docker打包netcore项目 docker打包web应用_docker打包netcore项目_04


通过翻译页面,我们知道了它想让我们根据指示解锁Jenkins。所以,让我们复制页面上的log 路径:

/var/jenkins_home/secrets/initialAdminPassword

回到Terminal 后执行下列命令:

docker exec [容器id] cat /var/jenkins_home/secrets/initialAdminPassword
b09a75b099c64f2a930b43b2b19b5015

docker exec [容器id] cat 就是使用容器的cat命令查看/var/jenkins_home/secrets/initialAdminPasswordb09a75b099c64f2a930b43b2b19b5015 的内容。

这条命令的输出是一长串字符串,也就是解锁Jenkins所需的密码。我们复制好这条字符串,

并将它粘贴到Jenkins的密码输入框中

docker打包netcore项目 docker打包web应用_docker_05


然后我们点击continue

docker打包netcore项目 docker打包web应用_Jenkins_06


点击Install suggested plugins。

等到安装完毕后,在创建Admin user界面填入自己的个人信息,然后点击Save and Continue->Finish

docker打包netcore项目 docker打包web应用_docker_07

然后我们就成功部署了Jenkins了,如果你想停止应用程序的话,就运行:

docker stop [容器id]

总结

我们这一讲就学习了如何用Docker container部署一个应用程序。在下一讲的话,我们会学习Docker网络。