【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
【MySQL】Dockerfile書寫簡單示例
前言:在用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/
【Cloud】AWS建立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把連接中發送的所有數
【java】java自帶的java.util.logging.Logger日誌功能
lena mat logs pre 默認 closed custom err ole 偶然翻閱到一篇文章,註意到Java自帶的Logger日誌功能,特地來細細的看一看,記錄一下。 1.Java自帶的日誌功能,默認的配置 ①Logger的默認配置,位置在JRE安裝目錄下l
【php】php-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)前的;去掉。 因為編譯