随着微服务的流行,Docker越来越流行,正如它的理念”Build, Ship, and Run Any App, Anywhere”一样,Docker提供的容器隔离技术使得开发人员不用再去理清server里的各种环境配置,轻松把应用运行起来。我们只需把运行环境的配置和应用封装在Docker的镜像(image),然后使用Docker运行这个镜像即可。Docker可以说是给所有开发人员的一个福利包,学习和使用Docker是所有开发人员的标配技能。


安装Docker

yum install docker

本文使用的系统是centos7,ubuntu使用以下命令 
sudo apt-get update 
sudo apt-get install docker-engine

如果报了以下错误,是因为yum被其它进程使用了

Another app is currently holding the yum lock; waiting for it to exit...
The other application is: PackageKit
Memory : 12 M RSS (924 MB VSZ)
Started: Mon Jan 2 17:22:13 2017 - 1 day(s) 1:06:13 ago
State : Sleeping, pid: 16208

查看正在yum使用的进程

ps -ef|grep yum

kill掉它即可

kill -9 16208

安装完成,查看安装是否成功

docker info        #查看docker的情况
docker --version #查看docker的版本

启动Docker服务

service docker start

启动Docker的hello-world


从Docker Hub下载一个hello-world镜像

docker pull hello-world

运行hello-world镜像

docker run hello-word

输出以下信息

Hello from Docker!
This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.

至此,我们已成功运行起第一个Docker容器


tomcat运行环境


1、搜索Docker Hub里的tomcat镜像

docker search tomcat
  • 部分搜索结果如下
NAME                        DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
tomcat Apache Tomcat is an open source implementa... 1132 [OK]
dordoka/tomcat Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 ba... 29 [OK]
cloudesire/tomcat Tomcat server, 6/7/8 12 [OK]
davidcaste/alpine-tomcat Apache Tomcat 7/8 using Oracle Java 7/8 wi... 11 [OK]
andreptb/tomcat Debian Jessie based image with Apache Tomc... 6 [OK]

可以看到,星数最高的是官方的tomcat,有关官方tomcat的镜像可以访问 
https://hub.docker.com/r/library/tomcat/

上面 “7.0.73-jre7, 7.0-jre7, 7-jre7, 7.0.73, 7.0, 7”等等 是这个tomcat库支持的tag(标签),这里我们选用的是 “7” 这个标签

2、拉取Docker Hub里的镜像

docker pull tomcat:7

3、拉取完成后查看本地的镜像

docker images #所有镜像
docker image tomcat:7 #查看REPOSITORY为tomcat:7的镜像

4、运行tomcat镜像

docker run tomcat:7

可以访问 http://ip:8080 确认容器的tomcat已启动成功

  • 使用以下命令来查看正在运行的容器
docker ps
  • 若端口被占用,可以指定容器和主机的映射端口
docker run -p 8081:8080 tomcat:7 

5、运行我们的web应用

假设我们应用是www,目录位置在/app/deploy/www

docker run --privileged=true -v /app/deploy/www:/usr/local/tomcat/webapps/www  -p 8081:8080 tomcat:7 

-v /app/deploy/www:/usr/local/tomcat/webapps/www 是把/app/deploy/www的目录挂载至容器的/usr/local/tomcat/webapps/www。 
–privileged=true是授予docker挂载的权限

至此,已成功把web应用部署在Docker容器运行


常用命令

# 查看所有镜像
docker images # 正在运行容器
docker ps # 查看docker容器
docker ps -a # 启动tomcat:7镜像
docker run -p 8080:8080 tomcat:7 # 以后台守护进程的方式启动
docker run -d tomcat:7 # 停止一个容器
docker stop b840db1d182b # 进入一个容器
docker attach d48b21a7e439 # 进入正在运行容器并以命令行交互
docker exec -it e9410ee182bd /bin/sh # 以交互的方式运行
docker run -i -t -p 8081:8080 tomcat:7 /bin/bash

Docker安装tomcat和部署项目的更多相关文章

  1. docker安装Tomcat软件,部署项目

    1 搜索tomcat镜像 $ sudo docker search tomcat NAME DESCRIPTION STARS OFFICIAL AUTOMATED tomcat Apache Tom ...

  2. docker安装tomcat并部署web项目

    docker安装tomcat就不说了,网上一大把 启动tomcat: docker run --name tomcat -p 8080:8080 -v $PWD/test:/usr/local/tom ...

  3. docker安装Tomcat并部署war项目

    转载:https://blog.csdn.net/javahighness/article/details/82859596 1进入容器 docker exec -it mytomcat bash 以 ...

  4. linux下安装tomcat,部署项目

    一.先检查是否安装jdk java -version 查看版本信息,如果显示 那基本就是安装了. root@iZ2ze2hksqphzp0eh7dskoZ:/opt# java -version -b ...

  5. docker安装tomcat&部署javaweb程序

    一.docker定制简单的java-web应用镜像 网址: 1.jdk下载网址:https://www.oracle.com/technetwork/java/javase/downloads/jdk ...

  6. CentOS安装tomcat并且部署Java Web项目具有一定的参考价值

    本篇文章主要介绍了CentOS安装tomcat并且部署Java Web项目,具有一定的参考价值,有需要的可以了解一下.(http://m.8682222.com) 1.准备工作 b.因为tomcat的 ...

  7. Java Web开发: Tomcat中部署项目的三种方法

    web开发,在tomcat中部署项目的方法: 可以参考http://m.blog.csdn.net/blog/u012516903/15741727 定义$CATALINA_HOME指的是Tomcat ...

  8. eclipse maven项目中使用tomcat插件部署项目

    maven的tomcat插件部署web项目,我简单认为分两种,一种是部署到内置tomcat,另一种是部署到安装的tomcat. 第一种部署,默认是部署在内置tomcat的8080端口,如果不需要改端口 ...

  9. tomcat下部署项目的流程和遇到的问题笔记

    简单部署流程: 1,解析域名关联到服务器ip 2,配置服务器jre运行环境 3,安装tomcat 4,项目打war包,放入tomcat根目录下webapps(tomcat默认加载的项目目录)目录下 5 ...

随机推荐

  1. 关于tomcat和jetty的乱码问题

    现象:windows 下的tomcat和jetty默认安装都有问题,linux下的没有问题. 分析:操作系统字符集发生作用了,程序有些处理可能使用了该默认字符集,导致两边现象不一致,建议排查,先尝试通 ...

  2. SpringCloud是什么?

    参考链接: http://blog.csdn.net/forezp/article/details/70148833 一.概念定义       Spring Cloud是一个微服务框架,相比Dubbo ...

  3. Python学习之参数

    参数 # coding=utf-8 # 函数的参数 def power(x): return x * x; print power(5) 修改后 def power_1(x,n=2): #默认参数可以 ...

  4. 一大波 Android 刘海屏来袭,全网最全适配技巧!

    一.序 Hi,大家好,我是承香墨影! Apple 一直在引领设计的潮流,自从 iPhone X 发布之后,"刘海屏" 就一直存在争议.不过不管你怎样,Android 也要跻入 &q ...

  5. ZooKeeper:win7上安装单机及伪分布式安装

    zookeeper是一个为分布式应用所设计的分布式的.开源的调度服务,它主要用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用,协调及其管理的难度,提高性能的分布式服务. 本章的目的:如何 ...

  6. c#:实现动态编译,并实现动态MultiProcess功能(来自python multiprocess的想法)

    由于之前一直遇到一些关于并行进行数据处理的时效果往往不好,不管是c#还是java程序都是一样,但是在Python中通过multiprocess实现同样的功能时,却发现确实可以提高程序运行的性能,及服务 ...

  7. SAP中的读访问日志Read Access Logging(RAL)

    定义 读取访问日志(以下简称RAL)用于监视并记录对敏感数据的读取访问.这里的数据是指会被法律,外部公司政策或公司内部政策归类为敏感信息的数据.以下典型问题可能会与使用读取访问日志的应用程序有关: 谁 ...

  8. 使用Markup解析xml文件

    1:怎么获取Markup.cpp 和 Markup.h 首先到http://www.firstobject.com/dn_markup.htm链接下,下载Release 11.5 zip (579k) ...

  9. 单例模式详解及java常用类

    [单例模式]      确保某一个类,只能产生一个实例. 设计思路: ====将构造函数私有化,确保类外部,不能使用new关键字自行创建对象. ====在类内部实例化一个对象,并通过静态方法返回. ( ...

  10. if else if,switch case二者的联系与区别

    前段时间在学习中听到了一个关于条件判断语句的问题,分析if else if语句和switch case语句这两者之间的联系和区别,从而使用其中最有效率的一种方法. 一.if...else if if. ...