使用Dockerfile創建帶編譯安裝znginx服務的Centos Docker鏡像
【Dockerfile】使用Dockerfile創建帶nginx服務的Centos Docker鏡像
在宿主機上準備的文件清單:
Dockerfile #啟動ssh和apache服務的腳本 run.sh
以上文件都放到/root/nginx_centos目錄下
mkdir -p /root/nginx_centos cd /root/nginx_centos
一、準備run.sh文件
在/root/nginx_centos目錄新建run.sh
vim run.sh
腳本內容如下:
#!/bin/bash /usr/sbin/sshd & /usr/local/nginx/sbin/nginx
二、準備Dockerfile
在/root/nginx_centos目錄新建Dockerfile
vim Dockerfile
文件內容如下:
#新生成的鏡像是基於sshd:dockerfile鏡像FROM sshd-centos MAINTAINER by cmzsteven WORKDIR /usr/local/src #安裝wget RUN yum install -y wget #下載並解壓源碼包 RUN wget RUN tar -zxvf nginx-1.8.0.tar.gz WORKDIR nginx-1.8.0 #編譯安裝nginx RUN yum install -y gcc make pcre-devel zlib-devel RUN ./configure --prefix=/usr/local/nginx --with-pcre RUN make RUN make install #啟動Nginx服務 RUN /usr/local/nginx/sbin/nginx #修改Nginx配置文件,以非daemon方式啟動 RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf #復制服務啟動腳本並設置權限 ADD run.sh /usr/local/sbin/run.sh RUN chmod 755 /usr/local/sbin/run.sh #設置生成容器時需要執行的腳本 CMD ["/usr/local/sbin/run.sh"] #開放22、80、443端口 EXPOSE 22 EXPOSE 80 EXPOSE 443
需要註意的是:在Dockerfile文件中更換當前目錄不可以用“cd”命令,而要改用“WORKDIR”.
三、根據Dockerfile生成鏡像
docker build -t nginx_dockerfile:centos .11
查看鏡像:
[root@localhost nginx_centos]# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE nginx_dockerfile centos 9ad55461b2fe 5 minutes ago 386.1 MB nginx centos b738cec02b29 47 minutes ago 369.9 MB sshd-centos latest 64136bdc0cc8 46 hours ago 261.8 MB centos latest 0f73ae75014f 5 weeks ago 172.3 MB
四、根據鏡像生成的容器並進行測試
1、生成新的容器
[root@localhost nginx_centos]#docker run -d -p 2224:22 -p 8001:80 -p 4443:443 nginx_dockerfile:centos /usr/local/sbin/run.sh11
將容器的22端口、80端口和443端口分別映射到到宿主機上的2224端口、8001端口和4443端口,並運行服務腳本。
也可以使用-P參數來讓系統隨機指定端口映射到22、80和443端口:
docker run -d -P nginx_dockerfile:centos11
因為在Dockerfile中指定了EXPOSE所以系統會自動將指定的端口映射出來;同時使用CMD來指定生成容器時所需要執行的角本,所以這裏省略了“/usr/local/sbin/run.sh”。
2、查看新生成的容器:
[root@localhost nginx_centos]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c69d42541f52 nginx_dockerfile:centos "/usr/local/sbin/run 26 seconds ago Up 25 seconds 0.0.0.0:2224->22/tcp, 0.0.0.0:8001->80/tcp, 0.0.0.0:4443->443/tcp high_colden f5a87e085a0b nginx:centos "/usr/local/sbin/run 49 minutes ago Up 49 minutes 0.0.0.0:2223->22/tcp, 0.0.0.0:8000->80/tcp stoic_kirch ed9361b598c8 sshd-centos "/usr/sbin/sshd -D" About an hour ago Up About an hour 0.0.0.0:2222->22/tcp distracted_mclean
3、測試
測試nignx:
[root@localhost nginx_centos]# curl localhost:8001 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; }</style></head><body><h1>Welcome to nginx!</h1><p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p><p>For online documentation and support please refer to<a href="http://nginx.org/">nginx.org</a>.<br/>Commercial support is available at<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p></body></html>12345678910111213141516171819202122232425261234567891011121314151617181920212223242526
測試成功!
測試ssh
[root@localhost nginx_centos]# ssh localhost -p 2224 The authenticity of host '[localhost]:2224 ([::1]:2224)' can't be established.RSA key fingerprint is d7:fd:3d:40:46:b6:0c:c9:ee:f1:fb:9e:08:c4:12:57.Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[localhost]:2224' (RSA) to the list of known hosts.root@localhost's password:12345671234567
測試成功!
使用Dockerfile創建帶編譯安裝znginx服務的Centos Docker鏡像
相關推薦
使用Dockerfile創建帶編譯安裝znginx服務的Centos Docker鏡像
使用dockerfile創建帶編譯安裝z使用Dockerfile創建帶nginx服務的Centos Docker鏡像【Dockerfile】使用Dockerfile創建帶nginx服務的Centos Docker鏡像在宿主機上準備的文件清單:Dockerfile #啟動ssh和apache服務的腳本 run.
創建一個支持 sshd 服務的 docker 鏡像
user 嘗試 rsa dont hotmail remove 創建 auth run 前言 當我們運行容器後,第一件會想到的事情,就是如何連接容器。一般來說,連接容器的方式大概有四種。分別是attach、exec、ssh 和 nsenter. attach 和 exec
使用Dockerfile創建帶Apache服務的Centos Docker鏡像1
使用dockerfile創建帶apache服務的centos docker鏡像1 這裏將展示使用Dockerfile來創建帶Apache服務的Docker鏡像的具體過程。 準備工作: 首先,創建一個apache_centos工作目錄,在其中[root@docker1 ~]# mkdir
創建帶Tomcat服務的Centos Docker鏡像
創建帶tomcat服務的centos docker鏡像 Tomacat服務器是一個免費的開源代碼的Web應用服務器,屬於輕量級應用服務器,在中小型系統和並發訪問用戶不是很多的場合下普遍使用,是開發和高度JSP程序的首選。 下面我就分步驟向大家介紹如何創建帶Nginx服務的Centos Docker鏡像。 基
使用Dockerfile創建帶tomcat的Centos Docker鏡像
利用dockerfile來搭tomcat (1)準備工作: 創建tomcat7.0_jdk1.6文件夾,從www.oracle.com上下載sun_jdk 1.6壓縮包,解壓為jdk目錄。 創建Dockerfile和run.sh文件[root@docker1 ~]# mkdir tomcat7.0_jd
使用Dockerfile創建帶mysql的Centos Docker鏡像
mysql的centos docker鏡下面用官方的rpm源包安裝mysql過慢不主張采用yum這種方式#本文參考了「tutum」的 DockerfileFROM docker.io/centos:latestMAINTAINER Waitfish #設置環境變量,所有操作都是非交互式的ENV DEBIAN_
【系列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由於其高性能、易部署、易使用等特點,已經在各種領域都得到了廣泛的應用。 ①
【系列6】使用Dockerfile創建帶mysql5.6的Centos Docker鏡像
truct sel 5-0 schema closed res using ecif 循環 Docker官方的Mysql鏡像的Dockerfile托管在Github上,地址如下:https://github.com/docker-library/mysql/tree/583
通過Dockerfile創建支持SSH服務的docker鏡像(centos、Ubuntu)
body apt rfi .com pro vim abc 1.2 word centos: mkdir centos-ssh vim centos-ssh/Dockerfile FROM centos MAINTAINER blog.rootr.cn admin@doma
【系列6】使用Dockerfile創建帶mysql5.7的Centos Docker鏡像1
mysql5.7的Centos Dock1、進入Linux後,使用Docker命令下載MySQL,命令如:docker pull mysql:5.7運行該命令後,則會顯示以下日誌:[root@localhost ~]# docker pull mysql:5.7 5.7: Pulling from libra
通過DockerFile創建ssh服務鏡像
docker說明:創建一個含有sshd服務的基礎鏡像,再在這個基礎鏡像中創建其它中間件鏡像,再利用中間件鏡像創建應用容器。通過Dockerfile可以創建任意自定義容器,配合supervisord服務完美搭配。1. 編寫Dockerfile[[email protected]/* */ ~]# v
Cocos2d-x v3.1.1 創建以及編譯項目
耐心 以及 系統 content win 3.1 包名 安裝路徑 ont 1.安裝python, 並將安裝路徑增加系統環境變量中; 2. 執行cocos2d-x根文件夾下的setup.py; 3. 進入cmd, 輸入: cocos new 項目名稱 -p 包名 -l 語
dockerfile創建鏡像
inux 不能 get 函數調用 多層 可選 ble 復制 維護 dockerfile用來快速創建自定義鏡像 基本結構 dockerfile分為部分:基礎鏡像信息,維護者信息,鏡像操作指令,容器啟動時執行指令 一開始必須指明所基於的鏡像名稱-》維護者信息-》鏡像操作指
7 docker-使用dockerfile創建鏡像
docker在前面的實驗中我們多次用到的 Dockerfile,在本實驗裏我們將通過完成一個實例來學習Dockerfile的編寫。本節中,我們需要依次完成下面幾項任務: Dockerfile 基本框架 Dockerfile 編寫常用命令 從 Dockerfile 構建鏡像本次實驗的需求是完成
根據Dockerfile創建docker dotnet coer 鏡像
取名字 nbsp tcp 根據 9.png one dock 監聽 http 那我們先來看看Dockerfile文件內容,註意這個文件是沒後綴名的。 #依賴原始的鏡像,因為我們是要創建dotnet coer鏡像,所以我就用了官方給的鏡像【microsoft/dotnet:l
maven如何實現創建帶源代碼的jar包
tag number export includes -a porting 項目 源代碼 改變 實現目標 maven打包,在生成的jar包中帶有源代碼。記住,這個帶源代碼的意思是源代碼跟編譯生成的文件放在一個jar文件裏面,而不是單獨的一個XXX-source.jar包。
c#創建Windows service (Windows 服務)基礎教程
log 腳本 mage src installer als highlight syn project 轉自:http://www.cnblogs.com/sorex/archive/2012/05/16/2502001.html 1)創建Windows service項
編譯安裝zabbix服務端時遇到的問題
zabbix_server 遇到的問題 前面在編譯安裝zabbix時,遇到了不少的問題,通過百度已經解決了,問題如下在編譯時遇到的問題:問題一:configure: error: unixODBC library not found解決方法:yum install unixODBC-devel