一切从0开始,我也是个小白:

1.检查你的系统是不是高于3.8的内核,如果没有请升级CentOS7或者Ubuntu 14

#uname -a

2.CentOS7下安装docker

#yum -y install docker

3.查看docker版本

#docker version

4.启动docker服务

#docker service start

5.查看本地镜像

#docker images

6.如果没有本地镜像,可以下载一个centos7的镜像来作为基础运行环境

#docker pull centos:7.2.1511

7.再次查看本地镜像

#docker images

  1. REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
  2. docker.io/centos    7.2.1511            feac5e0dfdb2        8 months ago        194.6 MB

8.在本地先备好jdk和tomcat,此处采用jdk1.7和tomcat7

#cd /root/software/

#wget http://zhibo100.oss-cn-hangzhou.aliyuncs.com/software/jdk-7u79-linux-x64.tar.gz

#wget http://zhibo100.oss-cn-hangzhou.aliyuncs.com/software/apache-tomcat-7.0.59.tar.gz

需要其他版本的jdk和tomcat操作方法类似。

9.挂载宿主主机到镜像容器的/mnt/software/下:

#docker run -i -t -v /root/software/:/mnt/software/  --privileged=true  feac5e /bin/bash

10.进入到/mnt/software/下解压jdk和tomcat并将其移动到/opt/目录下

#cd /mnt/software/

#tar -zxvf jdk-7u79-linux-x64.tar.gz

#tar -zxvf apache-tomcat-7.0.59.tar.gz

#mv jdk1.7.0_79/ /opt/jdk

#mv apache-tomcat-7.0.59 /opt/tomcat

11.配置JAVA环境变量并检测

#vi ~/.bashrc

在文件末尾加上

export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

保存退出

#source ~/.bashrc

#java -version

  1. java version "1.7.0_79"
  2. Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
  3. Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

12.编写系统启动脚本并赋予权限

#vi /root/run.sh

加入以下代码

#!/bin/bash
source ~/.bashrc
sh /opt/tomcat/bin/catalina.sh run

#chmod u+x /root/run.sh

13.退出容器,并查看确认没有正在运行的容器

#exit

#docker ps

14.查询所有容器

#docker ps -a

  1. CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                          PORTS               NAMES
  2. ee0ee8ac3a93        feac                "/bin/bash"         13 minutes ago      Exited (0) About a minute ago                       sad_noyce

15.根据当前的容器ID创建新的镜像

#docker commit ee0ee sdzn.com/tomcat:0.1

16.查看当前的镜像

#docker images

  1. REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
  2. sdzn.com/tomcat     0.1                 af0647ada992        56 seconds ago      514.6 MB
  3. docker.io/centos    7.2.1511            feac5e0dfdb2        8 months ago        194.6 MB

17.以守护进程方式启动新的镜像并传入启动参数

#docker run -d -p 58080:8080 --name tomcat1 sdzn.com/tomcat:0.1 /root/run.sh

18.查看正在运行的镜像

#docker ps

  1. CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS                     NAMES
  2. 10fe153d9d6d        sdzn.com/tomcat:0.1   "/root/run.sh"      14 seconds ago      Up 6 seconds        0.0.0.0:58080->8080/tcp   tomcat1

19.访问镜像:

http://127.0.0.1:58080

20.停止容器并移除

#docker ps -a

  1. CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS                      PORTS                     NAMES
  2. 148df39831f0        af                    "/bin/bash"         56 seconds ago      Exited (2) 14 seconds ago                             admiring_kalam
  3. 10fe153d9d6d        sdzn.com/tomcat:0.1   "/root/run.sh"      6 minutes ago       Up 6 minutes                0.0.0.0:58080->8080/tcp   tomcat1
  4. ee0ee8ac3a93        feac                  "/bin/bash"         25 minutes ago      Exited (0) 13 minutes ago                             sad_noyce

#docker stop 10f

#docker ps -a

  1. CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS                            PORTS               NAMES
  2. 148df39831f0        af                    "/bin/bash"         2 minutes ago       Exited (2) 2 minutes ago                              admiring_kalam
  3. 10fe153d9d6d        sdzn.com/tomcat:0.1   "/root/run.sh"      8 minutes ago       Exited (137) About a minute ago                       tomcat1
  4. ee0ee8ac3a93        feac                  "/bin/bash"         27 minutes ago      Exited (0) 15 minutes ago                             sad_noyce

#docker images

  1. REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
  2. sdzn.com/tomcat     0.1                 af0647ada992        12 minutes ago      514.6 MB
  3. docker.io/centos    7.2.1511            feac5e0dfdb2        8 months ago        194.6 MB

#docker start 10f

#docker ps

#docker stop 10f

#docker ps -a

  1. CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS                        PORTS               NAMES
  2. 148df39831f0        af                    "/bin/bash"         6 minutes ago       Exited (2) 6 minutes ago                          admiring_kalam
  3. 10fe153d9d6d        sdzn.com/tomcat:0.1   "/root/run.sh"      12 minutes ago      Exited (137) 13 seconds ago                       tomcat1
  4. ee0ee8ac3a93        feac                  "/bin/bash"         31 minutes ago      Exited (0) 19 minutes ago                         sad_noyce

#docker ps -a

  1. CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS                        PORTS               NAMES
  2. 10fe153d9d6d        sdzn.com/tomcat:0.1   "/root/run.sh"      12 minutes ago      Exited (137) 30 seconds ago                       tomcat1
  3. ee0ee8ac3a93        feac                  "/bin/bash"         31 minutes ago      Exited (0) 19 minutes ago                         sad_noyce

#docker rm 10f

#docker rm ee0ee

21.移除已创建的镜像

#docker images

  1. REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
  2. sdzn.com/tomcat     0.1                 af0647ada992        17 minutes ago      514.6 MB
  3. docker.io/centos    7.2.1511            feac5e0dfdb2        8 months ago        194.6 MB

#docker rmi af064

#docker images

  1. REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
  2. docker.io/centos    7.2.1511            feac5e0dfdb2        8 months ago        194.6 MB

至此结束,演示了从0开始搭环境,发布启动tomcat到清楚整个容器和镜像的完整过程。

后续如何配置多个项目公用一个tomcat的文章待续。

资料参考:

1.https://my.oschina.net/sunchp/blog/616526

2.http://blog.csdn.net/u011627980/article/details/51898234

在CentOS7下从0开始搭建docker并发布tomcat项目的更多相关文章

  1. CentOS7下使用Sonatype Nexus3搭建Docker私有仓库

    相关资料: Sonatype Nexus3官方网站:https://www.sonatype.com/download-oss-sonatype Sonatype Nexus3 Docker Hub地 ...

  2. [Kubernetes]CentOS7下Etcd集群搭建

    Etcd简要介绍 Etcd是Kubernetes集群中的一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息 Etcd构建自身高可用集群主要有三种形式: ①静态发现: 预先已知 Etcd 集 ...

  3. 将 ASP.NET Core 1.0 应用作为 docker 镜像发布 (Linux版)

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  4. centos7下SVN服务器如何搭建

    Centos7 搭建svn服务器 linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分享一下linux(ce ...

  5. centos7一步一步搭建docker tomcat 及重点讲解

    系统环境:centos7.7 (VMware中) image版本:tomcat:8-jdk8-openjdk (截止2020.01.10该系列版本) 安装步骤参考文章:https://www.jian ...

  6. centos7下Etcd3集群搭建

    一.环境介绍 etcd主要功能是分布式的存储键值,优点不多说了,分布是集群,自动选举等等,自行百度,主要说下配置方法,折腾了几天,终于优点眉目了,记录下操作方法,本文参考了如下链接 https://w ...

  7. centos7一步一步搭建docker jenkins 及自定义访问路径重点讲解

    系统环境:centos7.7 (VMware中) 镜像image 版本:jenkins/jenkins (截止2020.01.10最新版) 参考文章:https://www.jianshu.com/p ...

  8. Centos7下Etcd集群搭建

    一.简介 "A highly-available key value store for shared configuration and service discovery." ...

  9. CentOS7下的YUM源服务器搭建详解,过程写的很详细(转)

    因为近期公司需要搭建一个YUM源服务器给大量的linux(mini)使用,所以因此在网上找了很多的教程,却没有一个特别详细的,很多都有遗漏,参差不齐.所以,打算自己做完之后方便以后查阅,特出此文档. ...

随机推荐

  1. nodejs基础 -- 事件循环

    Node.js 事件循环 Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高. Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用, ...

  2. nodejs基础 -- 回调函数

    Node.js 异步编程的直接体现就是回调. 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了. 回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都 ...

  3. 開始学习swift,资料汇总帖

    最近開始学习swift,以后mac和ios开发就指望它,曾经学oc半途而废了.主要原因是oc等语法实在能适应,如今有swift了.语法有js,scala,python,c++,oc等语言的影子,又一次 ...

  4. mysql驱动(github上的)

    https://github.com/Eonblast/Emysql https://github.com/denglf/erlang-db-driver https://github.com/diz ...

  5. SharePoint 2013 一次性上传文件大小限制

    默认是250MB,最大一次上传文件不超过2G The defaut size is 250MB and maximun upload size is 2047MB. It's can't greate ...

  6. SQLite学习手册

    在实际的应用中,SQLite作为目前最为流行的开源嵌入式关系型数据库,在系统的架构设计中正在扮演着越来越为重要的角色.和很多其它嵌入式NoSQL数据库不同的是,SQLite支持很多关系型数据库的基本特 ...

  7. PHPCMS列表循环序列号自增标签代码

    {pc:content action="position"posid="1"num="3"thumb="1"} {php ...

  8. NodeJs生成SVG图形验证码

    背景:短信接口有调用限制,如果受到恶意攻击,很容易就爆掉,所以需要一系列验证机制,后端采用签名加密的方式,而前端要做人机识别,有两个要求: 1)不能使用文本式的验证码,很简单就能拿到 2)所有验证逻辑 ...

  9. JAVA程序员应该看的15本书的电子版

    转载▼ 转载自:http://blog.sina.com.cn/s/blog_8297f0d00100v5ew.html 作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多, ...

  10. POJ 2229 Sumsets(技巧题, 背包变形)

    discuss 看到有人讲完全背包可以过, 假如我自己做的话, 也只能想到完全背包了 思路: 1. 当 n 为奇数时, f[n] = f[n-1], 因为只需在所有的序列前添加一个 1 即可, 所有的 ...