Docker容器部署 - Go语言中文社区

Docker容器部署


Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

一、引言

​ 作为虚拟容器,与操作系统绝对隔离,能够对测试应用过程方便搭建各类环境,模拟真实应用环境。主要在Linux/Mac系统上安装Docker进行操作,当然目前的Windows系统也已经可以使用Docker了,不过笔者没有试过,大部分情况下还是在Linux系统上进行操作。

​ 基于以上特性,开发或者运维基本上都会接触或者使用Docker,所以学习Docker也就变得越来越重要。

二、Docker定义

​ Docker,是容器。什么是容器,在生活中,我们会将盛装东西的器具叫做容器,例如茶杯、盘碗等。那Docker容器盛装的又是什么呢?

​ Docker盛装的就是第一部分阐述的各类应用程序或者软件,甚至于系统都能盛装。最开始我对Docker能盛装系统感到无比惊讶,Docker跑在系统上,而我们在Docker中又安装一个系统,形成了套娃机制(禁止套娃)。

	那么问题来了,我们需要搭建一套web应用环境,例如Tomcat、jdk、nginx等,我们通过正常的应用安装步骤也能够完成,何必借助Docker容器呢。

​ 带着这个问题,我们进入到第三部分。

三、使用说明

​ 我们先使用Docker来简单装个jdk8,首先当然是准备好Docker软件,这里笔者使用的系统版本是CentOS 7.4,且使用Docker社区版,即Docker-ce。

yum -y install docker-ce

通过yum一键安装完成后,进行启动docker

systemctl start docker

检查docker是否正常启动,观察是否有active(running)的绿色字样即表示已启动docker

systemctl status docker
image-20201223113741621

JDK8容器部署

现在我的目标是在docker中安装一个jdk8环境,我们先通过docker search命令查找jdk8镜像名称

docker search jdk8

image-20201223150219423

返回结果的第二行就是我们想要的结果,即镜像名称为docker.io/ascdc/jdk8,所以我们使用docker pull xxx,xxx即为镜像名称

docker pull docker.io/ascdc/jdk8

经过短暂的等待后,整个pull过程就结束了,我们检查容器中是不是有了我们的jdk8镜像

docker images

image-20201223150441561

第一列是镜像名称,第二列是镜像标签(版本号,这里默认使用的latest,即最新),第三列是镜像唯一ID(比较重要),第四列是镜像创建时间,最后一列是镜像大小。

现在我们要启动这个镜像:

docker run -di --name=jdk1.8 kdvolder/jdk8

image-20201223153117198

查看启动是否成功:

docker ps -a

image-20201223153328674

主要查看第5列的STATUS,状态显示Up About a minute,启动了一分钟,表示已经启动成功。

调试进入该容器内部,查看jdk版本号等信息,这里我们需要docker exec命令,跟上参数it,其后跟上容器名称jdk1.8或者使用容器ID,进入容器内部后,使用java -version命令即可查看我们安装镜像的jdk版本信息了:

docker exec -it jdk1.8 bash
java -version
# docker exec -it 4d870c9fa8ae bash

image-20201223161606874

Tomcat容器部署

  • 从网易的镜像中心拉取tomcat镜像
docker pull hub.c.163.com/library/tomcat:latest
  • 使用7000端口映射启动的8080端口
docker run -d -it -p 7000:8080 --name tomcat8 hub.c.163.com/library/tomcat
  • 测试访问7000端口
curl localhost:7000

四、总结

​ 使用Docker能够极大的方便部署相关应用环境,思考我们第二部分抛出的问题,Docker所解决的问题就是在一个隔离的环境中部署应用,相对来说减少不同的系统环境导致部署出现的问题。

​ 最主要的是要熟记以下docker命令:

  1. docker images
  2. docker pull
  3. docker run
  4. docker exec
  5. docker ps -a

参考资料:

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/imVainiycos/article/details/115176087
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-06-14 18:09:13
  • 阅读 ( 1206 )
  • 分类:docker

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢