0、先创建一个文件夹img

mkdir img

  

1、Linux上新建3个文件

2、文件内容分别写入

(1)Dockerfile中

# 基于的基础镜像centos
FROM centos
# 维护该镜像的用户信息
MAINTAINER The CentOS Project<cloud-ops@centos.org>
# 镜像中的操作指令:安装apache软件包
RUN yum -y update
RUN yum -y install httpd
# 开启镜像中的80端口
EXPOSE 80
# 复制网址首页文件
ADD index.html /var/www/html/index.html
# 将执行脚本复制到镜像中
ADD run.sh /run.sh
RUN chmod 775 /run.sh
# 启动容器时执行脚本
CMD ["/run.sh"]

  

(2)index.html中

web test

  

(3)run.sh中

#!/bin/bash
rm -rf /run/httpd/*
exec /usr/sbin/apachectl -D FOREGROUND

说明:

rm -rf /run/httpd/*     清理httpd的缓存
exec /usr/sbin/apachectl -D FOREGROUND          启动apache服务

3、使用Dockerfile生成镜像

docker build -t httpd:centos .

-t  指定镜像标签

后面就会使用刚才编写的Dockerfile自动创建生成镜像。

可以看到整个创建过程中,每运行一次Dockerfile中的指令,都会给初始镜像加上新的一层。

4、使用新的镜像运行容器

docker run -dit -p 49180:80 httpd:centos

  

运行此命令前:先检查

(1)docker images  新建镜像是否存在

(2)netstat -an |grep 49180     宿主机中端口49180是否被占用,如果端口被占用就换一个端口号

注意:80端口是容器中的端口,不用管

运行此命令后:检查

docker  ps -a

看看该容器是否在运行(up)

5、防火墙开放宿主机的端口49180

firewall-cmd --zone=public --list-ports
firewall-cmd --zone=public --add-port=49180/tcp --permanent
firewall-cmd --reload

  

6、浏览器访问

ip:49180

基于Dockerfile创建docker镜像的更多相关文章

  1. Docker笔记--镜像&基于GO项目创建Docker镜像

    Docker笔记--镜像&基于GO项目创建Docker镜像 核心概念 Doker镜像--包含一个基本的操作系统运行环境和应用程序,镜像是创建Docker容器的基础. Docker容器--如果把 ...

  2. Spring Boot 创建 Docker 镜像

    随着越来越多的组织转向容器和虚拟服务器,Docker正成为软件开发工作流程中一个更重要的部分.为此,Spring Boot 2.3中最新的功能之中,提供了为Spring Boot应用程序创建 Dock ...

  3. Docker、Dockerfile、Docker镜像、容器这些都是什么鸟?

    老生常谈,再再再……普及一下: Docker:最早是dotCloud公司出品的一套容器管理工具,但后来Docker慢慢火起来了,连公司名字都从dotCloud改成Docker. Dockerfile: ...

  4. dockerfile封装docker镜像

    一.使用都dockerfile封装docker镜像 1.在任意一个地方创建文件夹docker mkdir docker 2.进入文件夹并且下载一个django2.1.7的包以及一个epel.repo ...

  5. 基于Dockerfile制作tomcat镜像

    Docker 概述:   在前面的例子中,我们从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低.所以就需要一种文件或脚本,我们把想执行的操 ...

  6. 基于url-to-pdf-api构建docker镜像,制作一个网页另存服务

    基于url-to-pdf-api构建docker镜像,制作一个网页另存服务 业务背景: 需要根据一个url路径打印这个网页的内容 解决方案: 1.使用wkhtml2pdf 2.使用puppeteer ...

  7. 利用脚本快速执行Dockerfile以及docker镜像的启停与删除

    `关于脚本:` 'sh setup.sh build' # 将Dockerfile创建成镜像 'sh setup.sh run' # 启动build创建好的镜像,放到后台运行 'sh setup.sh ...

  8. 基于 debian 操作系统的 docker 镜像,安装 vim

    基于 debian 操作系统的 docker 镜像,安装 vim,步骤: apt-get update apt-get install vim 注意: 直接运行步骤2,可能会报错: Reading p ...

  9. Docker 学习笔记 (一)Dockerfile 创建本地镜像

    一.测试环境 OS version: CentOS Linux release 7.5.1804 (Core) docker cluster : master 1 + data node 4 dock ...

随机推荐

  1. Web Application Vulnerablities

    1. File inclusion berfoe start this caption  i make a conclusion for install third-part as follow I ...

  2. Apache服务器中设置端口映射和反向代理的方法

    在/etc/httpd/conf路径下的httpd.conf文件###new add for webui.cong###Include "E:/local/Wamp/bin/apache/A ...

  3. SQL Server数据库中导入导出数据及结构时主外键关系的处理

    2015-01-26 软件开发中,经常涉及到不同数据库(包括不同产品的不同版本)之间的数据结构与数据的导入导出.处理过程中会遇到很多问题,尤为突出重要的一个问题就是主从表之间,从表有外检约束,从而导致 ...

  4. 揭开JS闭包的面纱

    今天看了关于js闭包方面的文章,还是有些云里雾里,对于一个菜鸟来说,学习闭包确实有一定的难度,不说别的,能够在网上找到一篇优秀的是那样的不易. 当然之所以闭包难理解,个人觉得是基础知识掌握的不牢,因为 ...

  5. 2019-2-13TextBox技巧

    清空所有的TextBox文本框 思路:这些TextBox都是在一个窗体上的,这时候我们可以利用一个循环去遍历窗体上所有的TextBox控件.(代码如下) foreach (Control i in C ...

  6. c#关键字和常用类型表快查

    类型 字节 取值范围 说明 bool 1 true/false/null 布尔类型 char 2 0x0000~0xffff Unicode 16 位字符 byte 1 0~255 无符号的 8 位整 ...

  7. 转摘: MySQL详解--锁

    原文 http://blog.csdn.net/xifeijian/article/details/20313977 InnoDB锁问题 InnoDB与MyISAM的最大不同有两点:一是支持事务(TR ...

  8. [LeetCode] Insert into a Cyclic Sorted List 在循环有序的链表中插入结点

    Given a node from a cyclic linked list which is sorted in ascending order, write a function to inser ...

  9. 安装Percona版本的MySQL主从复制

    准备两台虚拟机,按顺序执行1.1节的公共部分 1.1 首先安装 cmake # yum –y install cmake     //也需要安装gcc-c++,openssl openssl-deve ...

  10. MySQL数据库的几种引擎

    有些东西其实一直在用,但是突然问起来它是啥,可能你会很陌生,很陌生,很陌生 ....... mysql的四种引擎: 1.MyISAM存储引擎 不支持事务,不支持外键,优势是访问速度快,对事务完整性没有 ...