当前位置:首页 > CN2资讯 > 正文内容

server2012 搭建docker windows2012 docker

2天前CN2资讯


本次部署的容器类型为Linux。右击docker图标可以知道。

使用Hub中centos镜像、jdk包和tomcat包制作tomcat镜像


准备工作

打开powershell,下载centos,默认为最新版。
因为配置了镜像加速,所以下载很快。

PS C:\Users\liu> docker pull centos


在D盘建立dockertest目录并进入。

PS C:\Users\liu> cd D: PS D:\> mkdir dockertest PS D:\> cd .\dockertest\

建立一个说明文件与dockerfile文件,dockerfile文件是docker的精华之一。

PS D:\dockertest> new-item readme.txt PS D:\dockertest> new-item Dockerfile

jdk下载地址:https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html#license-lightbox

tomcat下载地址:
https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.50/

将下载的文件移到dockertest目录下。


编写Dockerfile

之所以将dockerfile文件命名为Dockerfile,是为了在build时,不用-f指定文件,会自动找到Dockerfile,更方便一些。
用记事本打开Dockefile文件,输入:

FROM centos MAINTAINER xuliu<liuxuecan@> COPY readme.txt /usr/local/readmei.txt ADD jdk-8u291-linux-x64.tar.gz /usr/local/ ADD apache-tomcat-8.0.50.tar.gz /usr/local/ RUN yum -y install vim RUN yum -y install net-tools ENV MYPATH /usr/local WORKDIR $MYPATH ENV JAVA_HOME /usr/local/jdk1.8.0_291 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATALINA_HOME /usr/local/apache-tomcat-8.0.50 ENV CATALINA_BASH /usr/local/apache-tomcat-8.0.50 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin EXPOSE 8080 CMD /usr/local/apache-tomcat-8.0.50/bin/startup.sh && tail -F /usr/local/apache-tomcat-8.0.50/logs/catalina.out

命令解释:
RUN tar.gz时会自动解压缩到/usr/local。

FROM # 基础镜像,一切从这里开始构建 centos MAINTAINER # 镜像是谁写的,姓名+邮箱 RUN # 镜像构建的时候需要运行的命令,等同与在shell中输入的命令 ADD # 步骤:tomcat镜像,这个tomcat压缩包就说添加内容。 WORKDIR # 镜像的工作目录,可指定 VOLUME # 挂载的目录 -v EXPOSE # 暴露端口配置 -p CMD # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代 ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令 ONBUILD # 当构建一个被继承的dockerfile,这个时候就会运行ONBUILD指令(触发指令) COPY # 类似ADD命令,将我们文件拷贝到镜像中 ENY # 构建时设置环境变量,-e

建立镜像

PS D:\dockertest> docker build -t mytomcat .

注意最后面的. 查看镜像:

PS D:\dockertest> docker images REPOSITORY TAG IMAGE ID CREATED SIZE mytomcat latest 7603ecae93c7 About a minute ago 657MB centos latest 300e315adb2f 6 months ago 209MB

在软件中也能看到:


启动镜像,建立容器

docker run -d -p 9090:8080 --name xuliutomcat -v D:/dockertest/xuliu/build/tomcat/webapps:/usr/local/apache-tomcat-8.0.50/webapps -v D:/dockertest/xuliu/build/tomcat/tomcatlogs/:/usr/local/apache-tomcat-8.0.50/logs mytomcat
  • -d: 后台运行
  • -p: 宿主机端口与容器端口的映射
  • -v: 挂载路径,宿主机路径:容器路径

查看建立的容器,发现正在运行:

PS D:\dockertest> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d24a7845535b mytomcat "/bin/sh -c '/usr/lo…" 3 minutes ago Up 3 minutes 0.0.0.0:9090->8080/tcp, :::9090->8080/tcp xuliutomcat

在软件中也能看到:


可以进入容器:

PS D:\dockertest> docker exec -it d24a7845535b /bin/bash [root@d24a7845535b local]# ls apache-tomcat-8.0.50 bin etc games include jdk1.8.0_291 lib lib64 libexec readmei.txt sbin share src

可见,默认路径为/usr/local,与Dockerfile文件设置一致。这实际上是一个精简版的centos。


查看容器内webapps文件夹:

[root@d24a7845535b local]# ls /usr/local/apache-tomcat-8.0.50/webapps/ [root@d24a7845535b local]#

发现为空,所以在浏览器中访问不到。


发布项目sample,测试tomcat

tomcat的例子下载地址https://tomcat.apache.org/tomcat-7.0-doc/appdev/sample/ 下载下来是一个war包:sample.war。
在启动镜像时,-v参数将宿主机与容器做了卷挂载:

-v D:/dockertest/xuliu/build/tomcat/webapps:/usr/local/apache-tomcat-8.0.50/webapps -v D:/dockertest/xuliu/build/tomcat/tomcatlogs/:/usr/local/apache-tomcat-8.0.50/logs

一个是D:/dockertest/xuliu/build/tomcat/webapps与/usr/local/apache-tomcat-8.0.50/webapps对应。
一个是D:/dockertest/xuliu/build/tomcat/tomcatlogs/与/usr/local/apache-tomcat-8.0.50/logs对应。

因此将下载得到的sample.war放到D:/dockertest/xuliu/build/tomcat/webapps中,同时也会出现在容器内。
查看容器内地址/usr/local/apache-tomcat-8.0.50/webapps:

[root@d24a7845535b local]# ls /usr/local/apache-tomcat-8.0.50/webapps/ sample sample.war

其中文件夹sample是sample.war的解包。

此时宿主机:


重新进入浏览器,输入localhost:9090/sample/index.html。

其中localhost也可写为本机的ip地址,可通过ipconfig查看。





另一个卷挂载结果:

容器中:

宿主机中:



直接使用docker hub中的镜像

这是别人做好的镜像,类似我们之前做的镜像mytomcat。
很简单,拿过来直接用就行。


下载镜像

运行镜像生成容器

docker run -it -v D:\dockertest\xuliu\build\tomcat\webapps\:/usr/local/tomcat/webapps -p 8080:8080 c43a65faae57

这里容器仍然挂载到D:\dockertest\xuliu\build\tomcat\webapps\ 并指定端口映射。

进入容器

不要退出运行的容器,另外再打开一个powershell。


查看容器id


进入容器


测试
将sample.war移到宿主机目录:D:\dockertest\xuliu\build\tomcat\webapps\,则该容器内:


此时浏览器可以访问了,部署完成了。


    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/28571.html

    分享给朋友:

    “server2012 搭建docker windows2012 docker” 的相关文章

    VPS重装系统的详细步骤与最佳实践

    在管理VPS时,有时会需要进行系统重装。VPS重装系统是指对虚拟专用服务器(Virtual Private Server)的操作系统进行全面重置和重新安装的过程。它可以帮助解决一些由于系统故障、配置错误或其他原因引发的问题。对于我来说,了解这一过程至关重要,可以让我更好地维护和管理我的服务器。 当我...

    OVH云服务概述:高性价比的VPS与专用服务器解决方案

    OVH概述 谈到云服务提供商,OVH无疑是一个引人注意的名字。这家成立于1999年的法国公司,总部位于鲁贝,已经从当初的小公司发展成为全球领先的云服务平台。OVH不仅为个人和企业提供各种云计算解决方案,还持续推动技术创新,满足越来越多用户的需求。 OVH拥有广泛的服务网络,分布在北美、欧洲、亚洲和非...

    Win10一键安装SQLite脚本:简化你的数据库配置过程

    在开始使用SQLite之前,首先需要确保它已经正确安装在你的Windows 10系统上。这个过程包括几个简单的步骤。我会逐步带你完成这些操作,让你能快速进入SQLite的世界。 访问SQLite官网 首先,前往SQLite的官方网站,网址是https://www.sqlite.org/downloa...

    解决Windows无法使用复制粘贴功能的实用方法

    在计算机使用中,Windows的复制粘贴功能是我们高效工作与学习的得力助手。从文字处理到文件管理,无论是在文档编辑中提取关键信息,还是将图片或文件快速转移到其他地方,复制粘贴都简化了许多操作。它轻松地帮助我们完成任务,节省了宝贵的时间。 我经常在工作中使用复制粘贴,特别是在撰写报告或为项目汇总资料时...

    如何选择适合的免费服务器:开发者与小团队的最佳指南

    免费服务器概述 在如今的数字时代,免费服务器成为了许多开发者和企业的热门选择。我们常常需要一些力量来支撑我们的项目,而这时候,免费服务器就能提供一个很好的解决方案。简单来说,免费服务器是一种不需要支付费用的虚拟专用服务器,允许用户在一定的使用条件下进行开发、测试或运行小型项目。 我记得刚接触云计算时...

    香港VPS推荐:如何选择适合你的虚拟私人服务器

    在进入VPS的世界之前,理解什么是VPS非常重要。VPS,全称为虚拟私人服务器,它实际上是利用物理服务器上的资源,通过虚拟化技术,创建出多个独立的小型服务器。这种方式使得每个VPS都可以运行自己的操作系统,用户可以自由配置和管理,就像拥有一台独立的服务器一样。其实,我最初接触VPS时,正是被这种独立...