一、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容器了,由于我们启动容器的时候做了端口映射所以访问的地址为:

http://192.168.1.51:50080/

如下图所示:说明部署成功

Docker实战之创建一个tomcat容器的更多相关文章

  1. 第八天 1-7 实战:创建一个root无法删除的文件

    实战:创建一个root无法删除的文件 简介:Linux文件的最底层(内核级别)属性的查看与修改 命令:lsattr.chattr Linux文件除了具有基本权限rwx,及特殊权限(SUID.SGID. ...

  2. 通过运行一个tomcat容器来记录下初学docker常用的几个命令---容器篇

    1.查看容器列表 显示正在运行的容器: [root@localhost HMK]# docker ps 显示所有容器,包括未运行的: [root@localhost HMK]# docker ps - ...

  3. Docker部署tomcat+nginx+mysql,创建一个tomcat集群

    Docker的部署可以选择虚拟机或者云服务器,我自己选择的是本机安装centos7虚拟机: 1.虚拟机安装登录成功后开始部署docker: 首先了解docker是一个开源应用容器引擎,基于Go语言遵循 ...

  4. Docker(十一):Docker实战部署HTTPS的Tomcat站点

    1.选择基础镜像  docker pull tomcat:7.0-jre8 2.生成HTTPS证书 keytool -genkey -alias tomcat -keyalg RSA -keystor ...

  5. 使用Dockerfile创建一个tomcat镜像,并运行一个简单war包

    docker已经看了有一段时间了,对镜像和容器也有了一个大致了解,参考书上的例子制作一个tomcat镜像,并简单运行一个HelloWorld.war 1.首先下载linux环境的tomcat和jdk, ...

  6. Docker实例:创建一个点到点连接

    默认情况下,Docker 会将所有容器连接到由 docker0 提供的虚拟子网中. 用户有时候需要两个容器之间可以直连通信,而不用通过主机网桥进行桥接. 解决办法很简单:创建一对 peer 接口,分别 ...

  7. 利用docker构造并运行一个Redis容器

    1.首先我们来编写一个基本的Dockerfile 在任意一个目录下 $ vi Dockerfile 内容填写如下: FROM ubuntu:14.04RUN apt-get updateRUN apt ...

  8. 完全自主创建Wrapper Tomcat容器

    Wrapper Tomcat 使用说明1. Wrapper Tomcat 简介1) Wrapper Tomcat 是使用Apache Tomcat 整合 Java Service Wrapper 的一 ...

  9. eclipse 在Servers窗口创建一个Tomcat 6.0 Server失败

    web项目部署到tomcat除了用eclipse插件,eclipse也有一个Servers窗口来部署.   问题背景:Servers窗口,我之前创建过一个Tomcat v6.0 Server,后来我把 ...

随机推荐

  1. CSS动画简介

    现在,我很少写介绍CSS的文章,因为感觉网站开发的关键还是在服务器端. 但是,CSS动画除外,它实在太有用了. 本文介绍CSS动画的两大组成部分:transition和animation.我不打算给出 ...

  2. Ubuntu Java7 SDK环境变量配置(转)

    1.去甲骨文官网下载java7 sdk http://www.oracle.com/technetwork/java/javase/downloads/index.html 这里笔者下载了最新的jav ...

  3. Android的GridView控件点击图片变暗效果

    @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setC ...

  4. 数据库数据格式化之Kettle Spoon

    前言 现在的数据库种类越来越多,数据库备份的格式也越来越复杂,所以数据格式化一直是一个老生常谈的问题.据库备份文件格式那么多,既有SQL的,也有BAK的,还有TXT的等.数据库种类也有很多,MySQL ...

  5. 《Go学习笔记 . 雨痕》流程控制(if、switch、for range、goto、continue、break)

    Go 精简(合并)了流控制语句,虽然某些时候不够便捷,但够用. if...else... 条件表达式值必须是布尔类型,可省略括号,且左花括号不能另起一行. func main() { x := 3 i ...

  6. TCP套接字端口复用SO_REUSEADDR

    下面建立的套接字都是tcp套接字 1.进程创建监听套接字socket1,邦定一个指定端口,并接受了若干连接.那么进程创建另外一个套接口socket2,并试图邦定同一个端口时候,bind错误返回“Add ...

  7. 树莓派创始人访谈:我们是怎么让大家都成为DIY黑客的

    原文出处: Linux.CN 请记住它是为喜欢折腾的人准备的只要35美元的计算机 我永远不会忘记我第一次看到树莓派的情形.那个小巧的,信用卡大小的计算机,性能却足够强劲,可以作为一般家用PC,媒体中心 ...

  8. SVN的管理方式和git的管理方式

    SVN是集中式的管理方式.大致流程如下: 1.从服务器上将整个项目代码检出到本地电脑硬盘中(一般来说,是从主分支上下载的代码).2.然后在svn服务器中建立新的开发分支,将硬盘中的代码提交到该开发分支 ...

  9. 移植Python2到TQ2440

    环境 Python:2.7.13 开发板: TQ2440 工具链: arm-none-linux-gnueabi-gcc 4.8.3 概述 前面已经把Python3移植到TQ2440上面的,现在我们移 ...

  10. 【python】python彻底卸载的方法【windows安装版卸载的示例】

    要想彻底干净的卸载python,如果是使用的安装版的话,其实很简单.[windows安装版] 就是点击安装包. 例如,当前你安装的版本是3.6.5,你想要把它卸载掉. 查看python版本的命令: 只 ...