IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Docker_dockerfile nginx和tomcat -> 正文阅读

[系统运维]Docker_dockerfile nginx和tomcat

一,镜像的分类
1,docker 的三要素
1), Docker镜像(Image)就是一个只读的模板,镜像可以用来创建Docker容器,一个镜像可以创建很多容器。
2),容器(Container)
1.Docker利用容器(Container)独立运行一个或一组应用
2.容器使用镜像创建的运行实例
3.容器可以被启动、开始、停止、删除,每个容器之间都是相互隔离的,保证平台的安全。
4.可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
5.容器的定义和镜像几乎一摸一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。
3),仓库(Repository)
1.仓库(Repository)是集中存放镜像文件的场所。
2.仓库(Repository)和仓库注册服务器(Registry)是有区别的,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
3.仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
4.最大的公开仓库是Docker Hub(https://hub.docker.com/),存放了数量庞大的镜像供用户下载。
5.国内的公开仓库包括阿里云、网易云等。
二.dockerfile分层原理
base镜像
base镜像有两层含义:不依赖其他镜像,从scratch构建其他镜像可以之为基础进行扩展所以,base镜像一般都是各种Linux发行版本的Docker镜像,比如:Ubuntu,Debian或者CentOS等。
base镜像提供的都是最小安装的Linux发行版本。

三,搭建Nginx
1.构建镜像

[root@docker ~]# mkdir nginx
[root@docker ~]# vim nginx/Dockerfile
#基础镜像(centos需小写)
FROM centos:7
#用户信息
MAINTAINER THIS IS NGINX IMAGE
添加环境包
RUN yum  -y update
RUN yum install -y pcre-devel zlib-devel gcc gcc-c++ make
RUN useradd -M -s /sbin/nologin nginx
#解压nginx软件包
ADD nginx-1.12.2.tar.gz /usr/local/src
#指定工作目录(相当于cd)
WORKDIR /usr/local/src
WORkDIR nginx-1.12.2
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module && make && make install
ENV PATH /usr/local/nginx/sbin:$PATH
#指定httpd端口
EXPOSE 80
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
CMD nginx

2.上传nginx 包

[root@docker ~]# cd nginx
[root@docker nginx]# ls
Dockerfile
[root@docker nginx]# rz -E

[root@docker nginx]# ls
Dockerfile  nginx-1.12.2.tar.gz

3.构建镜像

docker build -f Dockerfile -t nginx:new .
 docker run -d -P nginx:new  #运行镜像
[root@docker nginx]#  docker run -d -P nginx:new 
f18a5ddda8c0331a341e6fc4ccef615e2119c93acd98868766b52c7df649594a
[root@docker nginx]# docker ps -a
CONTAINER ID   IMAGE         COMMAND              CREATED          STATUS                      PORTS                                     NAMES
f18a5ddda8c0   nginx:new     "/bin/sh -c nginx"   32 seconds ago   Up 32 seconds               0.0.0.0:49153->80/tcp, :::49153->80/tcp   sweet_aryabhata
a3a1d2b372b8   hello-world   "/hello"             29 minutes ago   Exited (0) 29 minutes ago                                             priceless_colden

在这里插入图片描述
四,Tomcat 搭建、
1,构建镜像

FROM centos:7
MAINTAINER build image tomcat <tang>
EXPOSE 8080
ADD jdk-8u91-linux-x64.tar.gz /usr/local/src
WORKDIR /usr/local/src
ENV JAVA_HOME /usr/local/src/jdk1.8.0_91
ENV CLASSPATH $JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
ENV PATH $JAVA_HOME/bin:$PATH
ADD apache-tomcat-9.0.16.tar.gz /usr/local/src
RUN mv apache-tomcat-9.0.16/ /usr/local/tomcat9 &> /dev/null
ENV PATH /usr/local/tomcat9/bin/:$PATH
ADD tomcat9.run.sh /usr/local/src
RUN chmod 755 /usr/local/src/tomcat9.run.sh &> /dev/null
CMD ["/usr/local/src/tomcat9.run.sh"]

vim tomcat9.run.sh
#!/bin/bash
/usr/local/tomcat9/bin/catalina.sh run

2.生成镜像

[root@docker Tomcat]#  docker build -t tomcat:test .
[root@docker Tomcat]# docker images |grep tomcat
tomcat        test      b6fcee8f8fb0   About a minute ago   599MB

3.创造容器

[root@docker Tomcat]# docker run -d -P tomcat:test
49b92eee4f800bfc2611254d2996a404afae52e04f570c5fcc52261cfed27e06
[root@docker Tomcat]# docker ps -a |grep tomcat
49b92eee4f80   tomcat:test   "/usr/local/src/tomc…"   12 seconds ago      Up 11 seconds                  0.0.0.0:49154->8080/tcp, :::49154->8080/tcp   blissful_saha

在这里插入图片描述
五,dockerfile构建Tomcat镜像优化
1.创建目录并编写Dockerfile文件

vim Dockerfile 

FROM frolvlad/alpine-oraclejdk8  
ADD apache-tomcat-9.0.16.tar.gz /usr/local/
WORKDIR /usr/local/
RUN mv /usr/local/apache-tomcat-9.0.16 /usr/local/tomcat &>/dev/null
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& sed -i "s#securerandom.source=file:/dev/random#securerandom.source=file:/dev/urandom#g" $JAVA_HOME/jre/lib/security/java.security
EXPOSE 8080
ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]

2.生成镜像

[root@docker Tomcat]# docker build -t tomcat:new .
[root@docker Tomcat]# docker images
REPOSITORY                   TAG       IMAGE ID       CREATED          SIZE
tomcat                       new       ca84190d524b   44 seconds ago   199MB
tomcat                       test      b6fcee8f8fb0   19 minutes ago   599MB
nginx                        new       2aefb78c6db3   46 minutes ago   681MB
hello-world                  latest    d1165f221234   6 months ago     13.3kB
centos                       7         8652b9f0cb4c   10 months ago    204MB
frolvlad/alpine-oraclejdk8   latest    7f2049911fa1   2 years ago      169MB

3.创建容器

[root@docker Tomcat]# docker run -d -P tomcat:new
fced2d2e61cd9b486da249ce073beafbe313ee3ee527a9405fef8753c953a345
[root@docker Tomcat]# docker ps -a
CONTAINER ID   IMAGE         COMMAND                  CREATED             STATUS                         PORTS                                         NAMES
fced2d2e61cd   tomcat:new    "/usr/local/tomcat/b…"   13 seconds ago      Up 11 seconds                  0.0.0.0:49155->8080/tcp, :::49155->8080/tcp   happy_proskuriakova
49b92eee4f80   tomcat:test   "/usr/local/src/tomc…"   18 minutes ago      Up 18 minutes                  0.0.0.0:49154->8080/tcp, :::49154->8080/tcp   blissful_saha
f18a5ddda8c0   nginx:new     "/bin/sh -c nginx"       53 minutes ago      Up 53 minutes                  0.0.0.0:49153->80/tcp, :::49153->80/tcp       sweet_aryabhata
a3a1d2b372b8   hello-world   "/hello"                 About an hour ago   Exited (0) About an hour ago                                                 priceless_colden

在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-12 13:32:23  更:2021-09-12 13:33:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 3:36:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码