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. postgresql9.1数据库加解密

    --如下为postgresql9.1数据库加解密模块配置 --设置schemapsql -U postgres -h localhostset schema 'sbdc';--生成日志\o E:/sh ...

  2. java的官网下载(如有不懂,可以去我发的视频网站,那里面有详细过程)

    https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase9-3934878.html java 9的下载 ...

  3. javascript数组去重 String字符串去掉两端空格 javascript Array二分法排序 比较 javascript 求和

    通过原形添加方法: ==================数组去重(对象去重法)======================= Array.prototype.unique=function(){ va ...

  4. ssh-copy-id Permission denied (publickey,gssapi-keyex,gssapi-with-mic). 的解决方案

    -bash-4.2# ssh-copy-id 192.168.9.180 /usr/bin/ssh-copy-id: INFO: attempting to log in with the new k ...

  5. python3 excel文件的读与写

    from openpyxl import load_workbook class RwExcelFile: def read_Excel(self,file_path): ''' 读取excel中所有 ...

  6. CSS文字垂直居中的一些问题

    说到CSS文字垂直居中,很多初学者都喜欢用调整行高等于div高度的方式来达到效果, div { height:30px; line-height:30px; } 但其实这么做会遇到一个问题:多行文本溢 ...

  7. 13树莓派手动安装Home Assistant

    2017-09-05 00:53:02 https://home-assistant.io/docs/installation/raspberry-pi/ 已经安装步骤安装了带桌面的树莓派系统,在SD ...

  8. VS2013使用滚动条缩略图、双击选中高亮、配色方案、代码竖虚线(缩进标尺)

    1.双击代码或选中代码高亮,用以下插件,反应很灵敏,我安装的是第三个 2.代码编辑器的滚动条缩略图是VS自带的,需要打开菜单----工具----选项,如下图设置: 3.VS默认的选中颜色,需要打开菜单 ...

  9. 2018-2019-1 20189210 《LInux内核原理与分析》第八周作业

    一 .可执行程序工作原理 程序编译 预处理:gcc -E hello.c -o hello.i 编译:gcc -S hello.i -o hello.s -m32 汇编:gcc -c hello.s ...

  10. [Educational Round 5][Codeforces 616F. Expensive Strings]

    这题调得我心疲力竭...Educational Round 5就过一段时间再发了_(:з」∠)_ 先后找了三份AC代码对拍,结果有两份都会在某些数据上出点问题...这场的数据有点水啊_(:з」∠)_[ ...