Docker搭建獨立服務器


用Docker嘗試搭建了一個Apache2服務器,整體安裝很簡單,但是從容器中退出后,Apache2服務器也就隨之停止,網上有很多說可以通過docker run 加上-d參數可以使得服務器跑在后台,但是我試了以后,發現-d啟動起來的容器的狀態是exit,而且用docker start也無法改變狀態,不知道是我操作有誤,還是其他的原因,如果其他朋友有更好的解決方法,歡迎留言交流。

經過一番摸索,使用了如下方法,終於 得以解決。

因為是學習之用,故從最開始配置docker開始記錄,大神請忽略這部分。

1、首先是安裝docker,Linux下很簡單,apt-get就可以了

2、然后是下載響應的鏡像,我這里下載了ubuntu:14.04/ubuntu:16.06:

docker pull ubuntu:14.04
docker pull ubuntu:16.04

3、啟動一個容器,安裝我們需要的服務器環境(apache\php\vim……,根據自己服務器需要即可)

docker run -it ubuntu:14.04 /bin/bash

可以看到,我們已經進入到我們的docker容器中來了,接下來就是按照正常的程序安裝我們需要的軟件即可

安裝方法有很多,Debian系的apt-get install;紅帽系的:yum install;這里不再贅述

4、安裝完成后,我們需要保留下我們已經安裝好的容器,以備后用

這一步有兩種方式

(1)如果只是一台服務器自己用,可以直接用:docker commit來構建

 

docker commit -m "Apache2 Server" -a "toor" 7dd7ef463447(CONTAINER ID) server/ubuntu-t:14.04

這里解釋下參數:-m 容器的注釋,一般告訴我們這個容器是用來干什么的

        -a  表示容器的維護者,一般是容器創建者

        后面的那串數字是你的容器號,就是圖中紅色方框標識出來的字符串

        再后面的server/ubuntu-t是你給這個容器起的別名,冒號后面是你給容器標記的版本號。這部分是為了唯一標識這個容器

接下來我們就可以通過命令:“docker images” 看到自己創建好的容器了,如下圖紅色標識的位置所示

(2)如果我們需要把做好的容器與他人分享,這就需要通過docker build方式來制作,這里以我們剛才制作的server/ubuntu-t為例,方式如下:

首先新建一個目錄:apache-server

mkdir apache-server

然后在apache-server文件夾下創建一個Dockerfile文本文件,並向其中寫入基本的控制語句:

FROM server/ubuntu-t:14.04 #指定使用哪一個鏡像
MAINTAINER toor      #指定鏡像維護者

進入apache-server文件夾,執行下列語句

docker build -t="server/ubuntu-t1:14.04" .

說明一下參數:-t參數指定新的tag名稱,即唯一確定鏡像的連個標識符

我們可以看到新的鏡像id,docker images也可以看到新的鏡像,如下。

5、接下來就是如何解決我們讓含有Apache的服務器能正常后台工作的步驟了

(1)通過docker run來啟動docker

docker run -it -p 8080:80 server/ubuntu:14.04 /bin/bash

(2)正常啟動容器,進入到容器的shell后,開啟apache2服務

/etc/init.d/apache2 start

(3)服務啟動后,按下ctrl+d退出容器

(4)我們看到,此時容器的狀態是exited,我們啟動這個容器

docker start c74fdcdfe7da(CONTAINER ID)

(5)容器啟動起來后,進入容器重新開啟apache2服務,然后ctrl+d退出容器

我們看到這次容器的狀態依舊是UP的。測試相應的端口轉發也是正常的,這樣我們就可以通過docker對外安全的提供服務了。

(6)如果要停止相應的容器,執行相應的停止命令即可:

docker stop c74fdcdfe7da(CONTAINER ID)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM