1. 程式人生 > >【Dockerfile】使用Dockerfile建立帶Apache服務的Centos Docker映象

【Dockerfile】使用Dockerfile建立帶Apache服務的Centos Docker映象

Dockerfile
#啟動ssh和apache服務的角本
run.sh
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

以上檔案都放到/root/apache_centos目錄下

mkdir -p /root/apache_centos
cd /root/apache_centos
  • 1
  • 2
  • 1
  • 2

基礎映象:以映象centos為基礎的開放SSH服務的映象

[root@localhost apache_centos]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
sshd                dockerfile          411
d5fb16366 23 hours ago 278 MB centos latest 0f73ae75014f 5 weeks ago 172.3 MB
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

一、準備run.sh檔案 
在/root/apache_centos目錄新建run.sh

vim run.sh
  • 1
  • 1

內容如下:

#!/bin/bash
/usr/sbin/sshd &
/usr/local/apache2/bin/httpd -D FOREGROUND
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

二、準備Dockerfile 
在/root/apache_centos目錄新建Dockerfile

vim Dockerfile
  • 1
  • 1

檔案內容如下:

#新生成的映象是基於sshd:dockerfile映象
FROM sshd:dockerfile
MAINTAINER by Steven
#安裝wget
RUN yum install -y wget
WORKDIR /usr/local/src
#下載並解壓原始碼包
RUN wget http://apache.fayea.com/httpd/httpd-2.4.17.tar.gz
RUN tar -zxvf httpd-2.4.17.tar.gz
WORKDIR httpd-2.4.17
#編譯安裝apache
RUN yum install -y gcc make apr-devel apr apr-util apr-util-devel pcre-devel
RUN ./configure --prefix=/usr/local/apache2  --enable-mods-shared=most  --enable-so
RUN make
RUN make install
#修改apache配置檔案
RUN sed -i 's/#ServerName www.example.com:80/ServerName localhost:80/g' /usr/local/apache2/conf/httpd.conf #啟動apache服務 RUN /usr/local/apache2/bin/httpd #複製服務啟動指令碼並設定許可權 ADD run.sh /usr/local/sbin/run.sh RUN chmod 755 /usr/local/sbin/run.sh #開放80埠 EXPOSE 80 CMD ["/usr/local/sbin/run.sh"]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

需要注意的是:在Dockerfile檔案中更換當前目錄不可以用“cd”命令,而要改用“WORKDIR”. 
三、生成映象

docker build -t apache_dockerfile:centos .
  • 1
  • 1

檢視生成的映象:

[root@localhost apache_centos]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
apache_dockerfile   centos              f8f30b4a0ee8        24 minutes ago      440 MB
apache              centos              f92c55dddd07        17 hours ago        423.9 MB
sshd                dockerfile          411d5fb16366        23 hours ago        278 MB
centos              latest              0f73ae75014f        5 weeks ago         172.3 MB
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

四、根據映象生成的容器並進行測試 
1、生成新的容器

 docker run -d -p 2222:22 -p 8000:80 apache_dockerfile:centos /usr/local/sbin/run.sh
  • 1
  • 1

將容器的22埠和80埠分別對映到到宿主機上的2222埠和8000埠,並執行服務指令碼。

2、檢視新生成的容器:

[[email protected] apache_centos]# docker ps -a
CONTAINER ID        IMAGE                      COMMAND                CREATED             STATUS                      PORTS                                        NAMES
ae560e497f39        apache_dockerfile:centos   "/usr/local/sbin/run   45 seconds ago      Up 44 seconds               0.0.0.0:2222->22/tcp, 0.0.0.0:8000->80/tcp   condescending_bardeen
6490cd244c10        apache:centos              "/usr/local/apache2/   17 hours ago        Exited (0) 17 hours ago                                                  loving_wright
673e946b57e4        sshd:dockerfile            "/usr/local/sbin/run   18 hours ago        Exited (137) 17 hours ago                                                reverent_bell
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

3、測試 
測試apache

[[email protected] apache_centos]# curl localhost:8000
<html><body><h1>It works!</h1></body></html>
  • 1
  • 2
  • 1
  • 2

成功! 
測試ssh

[root@localhost apache_centos]# ssh localhost -p 2222
root@localhost's password:
  • 1
  • 2
  • 1
  • 2

成功!

相關推薦

Dockerfile使用Dockerfile建立Apache服務Centos Docker映象

Dockerfile #啟動ssh和apache服務的角本 run.sh123123以上檔案都放到/root/apache_centos目錄下 mkdir -p /root/apache_cen

apache服務docker映象 以及用Dockerfile製作apache服務映象

在上一篇文章中我們寫到了用centos映象去製作ssh服務的映象sshd-centos,在sshd-centos的基礎上面我們製作apache服務的docker映象,以及用Dockerfile的方法制作apache服務的映象第一種方法:直接製作我們可以看到我們製作的sshd-

(centos7)建立支援ssh服務docker映象

如果還沒有在這個網址註冊賬號的話,先註冊一個https://hub.docker.com/;賬號註冊成功後,然後在主機上(不是容器)新開一個終端,輸入以下資訊:docker login輸入相應的使用者名稱、密碼,然後會提示登入成功。有時會提示未連線上,這是可能是因為沒有開啟d

使用Dockerfile創建Apache服務Centos Docker鏡像1

使用dockerfile創建帶apache服務的centos docker鏡像1 這裏將展示使用Dockerfile來創建帶Apache服務的Docker鏡像的具體過程。 準備工作: 首先,創建一個apache_centos工作目錄,在其中[root@docker1 ~]# mkdir

系列5使用Dockerfile創建weblogic的Centos Docker鏡像

帶weblogic的docker鏡像Weblogic是一個基於Java EE架構的中間件(應用服務器),WebLogic由Oracle公司維護。 ? ?WebLogic是用於開發、集成、部署和管理大型分布式Web應用、網絡應用和數據庫應用的Java應用服務器。是商業市場上最主要的Java (J2EE)應用服務

系列6使用Dockerfile創建LAMP的Centos Docker鏡像

dockerfile創建帶lamp LAMP值的Linux (操作系統)、ApacheHTTP服務器、MySQL(有時也指MariaDB,數據庫軟件)和PHP(有時也是指Perl或Python)的組合方案,一般很適合用來建立Web服務器環境。 ① 下載LAMP鏡像: 下面介紹如何使用Do

系列8使用Dockerfile創建MongoDB的Centos Docker鏡像

dockerfile創建帶mongodb MongoDB是一款可擴展、高性能的開源文檔(Document-Oriented)數據庫。它采用C++開發,支持復雜的數據類型和強大的查詢語言,提供了關系數據庫的絕大部分功能。MongoDB由於其高性能、易部署、易使用等特點,已經在各種領域都得到了廣泛的應用。 ①

使用Dockerfile建立一個 ssh 服務的基礎映象

[[email protected] ~]# docker tag sshd:dockerfile cakin24/sshd:dockerfile [[email protected] ~]# docker images REPOSITORY TAG

Docker實戰:使用Dockerfile建立tomcat服務並支援ssh的Centos Docker映象

1、在root目錄下建立 tomcat8_jdk8 目錄 2、下載jdk8,tomcat8並解壓到 tomcat8_jdk8 目錄下 將jdk8解壓後重命名為jdk,並將裡面的src原始碼相關的檔案刪除,以減少生產映象檔案的大小。 將tomcat8解壓後重命名為to

MySQLDockerfile書寫簡單示例

前言:在用MySQL映象啟動MySQL服務時,我們經常會遇到時區和字符集問題,本篇文章將以Dockerfile形式重新構建MySQL映象來徹底解決此問題。 1.拉取官方映象 docker pull mysql:5.7.17 2.建立dockerfile mkdir mysqldb cd mysqldb

Docker江湖建立帶有SSH服務映象

開啟微信掃一掃,關注微信公眾號【資料與演算法聯盟】 轉載請註明出處:http://blog.csdn.net/gamer_gyt 博主微博:http://weibo.com/234654758 Github:https://github.com/

CloudAWS建立Ubuntu EC2虛擬機器,並Apache釋出網頁步驟

寫在前面過程基實很簡單,但是會用到一些常用的輔助工具,比如putty、SFTP工具等,平時常用就不是問題,找文件沒有找到非常詳盡的,最終在國外網站上找到文字步驟,這裡再把截圖過程記錄一下.一、在aws 管理控制檯console上設定安全組單擊入站選項卡,新增2組:source

docker 使用Dockerfile 建立jdk 和tomcat的映象

Dockerfile 內容如下: FROM ubuntu:14.04 #重新整理包快取 並且 安裝wget工具 RUN apt-get update && apt-get install -y wget #設定工作目錄 WORKDIR /home # 安

Java利用自的file.mkdirs()建立資料夾與file.mkdirs()的注意事項

利用Java的自帶命令file.mkdirs();是可以直接在系統建立資料夾的。比如在d:\1資料夾下建立一個2的資料夾,則這樣寫:import java.io.*;  publicclass FileMkdirTest {      publicstaticvoid mai

Dockerfile詳解

tail log rfi file -s doc dock art blank Dockerfile詳解 https://blog.csdn.net/wo18237095579/article/details/80540571 ------------------

案例利用innodb_force_recovery 解決MySQL服務器crash無法重啟問題

sock ogre ogr 事務 == format span caused his 一 背景 某一創業的朋友的主機因為磁盤陣列損壞機器crash,重啟MySQL服務時 報如下錯誤: InnoDB: Reading tablespace informatio

轉載Linux查看 apache,mysql,php安裝路徑

my.cnf sdn mysql目錄 pan sbin dump lin tail art 原文鏈接:http://blog.csdn.net/pengone/article/details/50035889 apache: 如果采用RPM包安裝,安裝路徑應在 /e

TCP建立連接三次握手和釋放連接四次握手

eight 請求 置1 計時器 響應 發送數據 出現 期望 本地 在談及TCP建立連接和釋放連接過程,先來簡單認識一下TCP報文段首部格式的的幾個名詞(這裏只是簡單說明,具體請查看相關教程) 序列號seq:占4個字節,用來標記數據段的順序,TCP把連接中發送的所有數

javajava自的java.util.logging.Logger日誌功能

lena mat logs pre 默認 closed custom err ole 偶然翻閱到一篇文章,註意到Java自帶的Logger日誌功能,特地來細細的看一看,記錄一下。 1.Java自帶的日誌功能,默認的配置   ①Logger的默認配置,位置在JRE安裝目錄下l

phpphp-fpm註冊service服務

編譯安裝 ice 添加服務 fpm 去掉 start config kcon 安裝php 配置php-fpm.conf vi /usr/local/php54/etc/php-fpm.conf),將pid(;pid = run/php-fpm.pid)前的;去掉。 因為編譯