Docker实战之创建一个tomcat容器
一、Docker与虚拟机的区别

二、Docker学习步骤
2.1:安装宿主操作系统
在VMVare中安装了Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic x86_64)
64位操作系统
建议内核在 3.8 以上,执行uname –r 查看内核如下图所示

2.2:更新系统
Ubuntu在安装的过程中没有指定root用户密码的操作,所以我们需要给root用户一个密码
命令如下
sudo passwd 系统会提示Enter New UNIX OR LINUX PASSWORD
输入即可
再次确认密码,会提示修改成功
接下来更新系统命令
apt update && apt dist-upgrade –y或者sudo apt update && apt dist-upgrade –y
等待系统更新完成,如下图所示

2.3:安装Docker
执行命令:
curl https://releases.rancher.com/install-docker/17.03.sh | sh
如下图所示

之后需要在线下载一些安装资源,耐心的等待就好,安装成功如下图所示

查看docker是否安装成功,docker version ,如下图所示显示正确的版本号则说明安装成功

安装成功后则可启动docker服务
systemctl start docker.service
三、Docker的练习
3.1:查看容器和镜像
执行docker ps 或者 docker images 进行查看容器或者镜像,如下图(因为刚装好Docker
所以现在的容器和镜像都是为空的下面显示的知识标题)

3.2:下载一个镜像
执行docker pull 镜像名 即可下载一个镜像,下面以下载一个redis镜像为例进行操作,此操作需要连接网络,需要等待,如下图所示

下载完成,如下图所示

下载成功再次执行docker images命令可以看到我们下载的镜像

3.3:创建一个tomcat运行环境
3.3.1:上传java和tomcat
分别下载如下安装包,上传到服务器

3.3.2:解压到指定的目录
我们在Docker宿主机上创建了一个tomcat-docker目录,把解压好的jdk和tomcat放到该目录,如下图所示

3.3.3:创建用来生成镜像的Dockerfile文件
在tomcat-docker目录下执行命令touch Dockerfile创建一个Dockerfile文件
Vi Dockerfile内容如下,之后保存
# 设置继承的镜像
FROM ubuntu:16.04
# 创建者信息
MAINTAINER wxj "kingstudy@vip.qq.com"
# 设置环境变量,所有操作都是非交互式的
ENV DEBIAN_FRONTEND noninteractive
# 设置tomcat的环境变量
ENV CATALINA_HOME /tomcat
ENV JAVA_HOME /jdk
# 复制tomcat和jdk文件到镜像中
ADD apache-tomcat-9.0.0.M21 /tomcat
ADD jdk1.8.0_131 /jdk
# 复制启动脚本至镜像,并赋予脚本可执行权限
ADD run.sh /run.sh
RUN chmod +x /*.sh
RUN chmod +x /tomcat/bin/*.sh
# 暴露接口8091,这是我的tomcat接口,默认为8080
EXPOSE 8091
# 设置自启动命令
CMD ["/run.sh"]
3.3.4:创建自动启动文件run.sh
在创建Dockerfile的时候我们可以发现最后的一行设置自启动命令里面指定了/run.sh
这里的’/’是根目录的意思,和Linux操作系统的’/’目录有所区别,只要Dockerfile和run.sh在同一个目录下这个地方就可以用/来指定,下面我们在tomcat-docker路径下执行touch run.sh创建一个run.sh文件,内容如下
#!/bin/bash
# 启动tomcat
exec ${CATALINA_HOME}/bin/catalina.sh run
run.sh的作用是在启动容器的时候启动tomcat服务
3.3.5:根据Dockerfile生成镜像
注意:这个命令一定要在tomcat-docker这个目录下执行才可以,因为里面有复制文件的操作用的是相对目录
root@KingServer1:~/tomcat-docker# docker build -t tomcat:test1 -f /root/tomcat-docker/Dockerfile .
Sending build context to Docker daemon 391.1 MB
Step 1/12 : FROM ubuntu:16.04
---> d355ed3537e9
Step 2/12 : MAINTAINER wxj "kingstudy@vip.qq.com"
---> Using cache
---> c1f3d38837ca
Step 3/12 : ENV DEBIAN_FRONTEND noninteractive
---> Using cache
---> be1ca3b3b014
Step 4/12 : ENV CATALINA_HOME /tomcat
---> Running in ae8df355595b
---> dcba8eb85069
Removing intermediate container ae8df355595b
Step 5/12 : ENV JAVA_HOME /jdk
---> Running in 9fcfd0114cb8
---> 93155ece74c9
Removing intermediate container 9fcfd0114cb8
Step 6/12 : ADD apache-tomcat-9.0.0.M21 /tomcat
---> 5c6cb315cd7b
Removing intermediate container a205f98691c1
Step 7/12 : ADD jdk1.8.0_131 /jdk
---> 026a07f7732f
Removing intermediate container e75995168a1a
Step 8/12 : ADD run.sh /run.sh
---> bae5ce399a0d
Removing intermediate container d6661b08ec16
Step 9/12 : RUN chmod +x /*.sh
---> Running in 1c8c73ba4bbd
---> e32338aed2aa
Removing intermediate container 1c8c73ba4bbd
Step 10/12 : RUN chmod +x /tomcat/bin/*.sh
---> Running in 90397e868a4b
---> 2879d10a8022
Removing intermediate container 90397e868a4b
Step 11/12 : EXPOSE 8091
---> Running in e9e9de8bb2a5
---> 7d5fa1266ad3
Removing intermediate container e9e9de8bb2a5
Step 12/12 : CMD /run.sh
---> Running in 5ccebdc7a956
---> 1835085d375b
Removing intermediate container 5ccebdc7a956
Successfully built 1835085d375b
查看镜像是否生成成功,执行docker images如下图所示可以看到镜像ID 183,则说明成功

3.3.6:用生成的tomcat镜像来启动一个容器
执行如下命令
docker run -d -p 50080:8080 tomcat:test1
-p是指定宿主主机和容器的端口映射, 用宿主主机的50080端口映射容器的8080端口
查看是否启动成功,docker ps 如下图所示可以看到启动成功

3.3.7:测试容器是否部署成功
容器启动以后,我们就可以通过宿主主机来访问tomcat容器了,由于我们启动容器的时候做了端口映射所以访问的地址为:
如下图所示:说明部署成功

Docker实战之创建一个tomcat容器的更多相关文章
- 第八天 1-7 实战:创建一个root无法删除的文件
实战:创建一个root无法删除的文件 简介:Linux文件的最底层(内核级别)属性的查看与修改 命令:lsattr.chattr Linux文件除了具有基本权限rwx,及特殊权限(SUID.SGID. ...
- 通过运行一个tomcat容器来记录下初学docker常用的几个命令---容器篇
1.查看容器列表 显示正在运行的容器: [root@localhost HMK]# docker ps 显示所有容器,包括未运行的: [root@localhost HMK]# docker ps - ...
- Docker部署tomcat+nginx+mysql,创建一个tomcat集群
Docker的部署可以选择虚拟机或者云服务器,我自己选择的是本机安装centos7虚拟机: 1.虚拟机安装登录成功后开始部署docker: 首先了解docker是一个开源应用容器引擎,基于Go语言遵循 ...
- Docker(十一):Docker实战部署HTTPS的Tomcat站点
1.选择基础镜像 docker pull tomcat:7.0-jre8 2.生成HTTPS证书 keytool -genkey -alias tomcat -keyalg RSA -keystor ...
- 使用Dockerfile创建一个tomcat镜像,并运行一个简单war包
docker已经看了有一段时间了,对镜像和容器也有了一个大致了解,参考书上的例子制作一个tomcat镜像,并简单运行一个HelloWorld.war 1.首先下载linux环境的tomcat和jdk, ...
- Docker实例:创建一个点到点连接
默认情况下,Docker 会将所有容器连接到由 docker0 提供的虚拟子网中. 用户有时候需要两个容器之间可以直连通信,而不用通过主机网桥进行桥接. 解决办法很简单:创建一对 peer 接口,分别 ...
- 利用docker构造并运行一个Redis容器
1.首先我们来编写一个基本的Dockerfile 在任意一个目录下 $ vi Dockerfile 内容填写如下: FROM ubuntu:14.04RUN apt-get updateRUN apt ...
- 完全自主创建Wrapper Tomcat容器
Wrapper Tomcat 使用说明1. Wrapper Tomcat 简介1) Wrapper Tomcat 是使用Apache Tomcat 整合 Java Service Wrapper 的一 ...
- eclipse 在Servers窗口创建一个Tomcat 6.0 Server失败
web项目部署到tomcat除了用eclipse插件,eclipse也有一个Servers窗口来部署. 问题背景:Servers窗口,我之前创建过一个Tomcat v6.0 Server,后来我把 ...
随机推荐
- ant design select 坑总结
1.保持Option的value和select绑定的value一致,这样在select框中显示的才是Option中的节点文本label 2.labelInValue属性可以使选中项的文本label包装 ...
- 黑群晖NAS安装方法(收集)/物理机/VMware虚拟机/KVM虚拟机(转)
群晖NAS系统的特点: 1.正版的群晖分为两部分,启动引导和系统文件,其中启动引导是一个闪盘,镶嵌在群晖的主板上,而系统文件是现成下载然后倒入的pat文件. 2.黑群晖破解的主要是启动引导,其实能兼容 ...
- Redis使用小结
Redis官方没有windows版本的,对于Windows环境的redis,有如下两个方案 微软的移植版本,但只支持到3.2 下载地址 win10及以上的版本直接通过win10的liunx子系统执行 ...
- kcon 黑客大会 github
https://github.com/knownsec/KCon https://paper.seebug.org/107/ CISP认证 https://habo.qq.com/ https://g ...
- nginx源码学习 资料
首先要做的当然是下载一份nginx源码,可以从nginx官方网站下载一份最新的. 看了nginx源码,发现这是一份完全没有注释,完全没有配置文档的代码. 现在你最希望要的是一份注释版的nginx源码, ...
- EF6+Sqlite连接字符串的动态设置
摘要 在winform中应用sqlite和ef,对于sqlite连接字串的设置,大多情况下是不想写死了,你不知道用户会将你的exe程序安装在什么位置,也不知道他的电脑盘符是什么,如果写死了,那么很有可 ...
- C++ 实践总结
对于一个应用程序而言,静态链接库可能被载入多次,而动态链接库仅仅会被载入一次. Gameloft面试之错误一 Event: 面试官说例如以下程序是能够链接通过的. class Base { Pu ...
- 在ASP.NET Web API中实现CORS(跨域资源共享)
默认情况下,是不允许网页从不同的域访问服务器资源的,访问遵循"同源"策略的原则. 会遇到如下的报错: XMLHttpRequest cannot load http://local ...
- java根据模板导出PDF详细教程
原文:https://blog.csdn.net/pengyufight/article/details/75305128 题记:由于业务的需要,需要根据模板定制pdf文档,经测试根据模板导出word ...
- iOS中使用RegexKitLite来试用正则表达式
转:http://blog.csdn.net/nullcn/article/details/6338592 准备工作,下载RegexKitLite 软件包,解压后有2个文件,需要加载到project中 ...