轉:Docker建立centos的LNMP鏡像

來源:互聯網
上載者:User

標籤:

轉自:http://www.vckai.com/p/29

 

 1. 安裝docker

        這個就不說了,不會的可以看下我之前的文章《Docker介紹及安裝》。

 

    1)啟動docker

# service docker start

 

 2. 下載docker鏡像

        官網docker鏡像網站:https://www.docker.com/,可以在這裡查看官網或者第三方的docker鏡像。當然如果沒有VPN,網路比較慢的情況下,可以考慮使用:https://docker.cn/,這是一個國內的鏡像網站。

 

    1)下載docker鏡像

# docker pull docker.cn/docker/centos:centos6

        說明:docker pull命令是從遠程下載鏡像的命令,類似git pull。docker.cn/docker/centos是國內鏡像網站centos鏡像的地址,如果要下載官方centos鏡像,直接使用centos即可。:centos6是指這個鏡像的tag,我下載的是centos6,如果要下載最新版本,可以使用:latest或者:centos7。

 

    2)查看鏡像

# docker images

         OK,可以看到centos鏡像已經下載下來了。

 3.  運行容器

        根據剛剛下載的centos鏡像運行一個容器進入shell。

 

    1)運行容器,進入該容器的shell介面

# docker run -i -t docker.cn/docker/centos:centos6 /bin/bash

        現在我們已經進入容器的shell介面了,這個就是我們下載下來的centos6系統的shell,

 

        下面就是在容器中安裝lnmp環境。

        這裡就不詳細說了,如果不會安裝lnmp的,可以看這裡:《centos6 下安裝nginx1.7.9+php5.6.4+mysql5.6.2》。

        安裝完成lnmp之後,輸入exit退出鏡像shell介面。

        

 

 4. 製作產生新鏡像

         先查看下剛剛啟動並執行容器(安裝lnmp的)的ID,在使用該ID產生新的鏡像。

 

    1) 查看剛剛啟動並執行容器ID

# docker ps -lq

        

        可以看到ID為:fe77b1628688,下面我們提交下這個容器產生新鏡像。

 

    2)提交產生新鏡像

# docker commit fe77b vckai/dev:v1

        fe77b1628688這裡一般只需要使用前幾位元就行了,只要不重複能識別到,可以不輸入全部的,vckai/dev:v1 是我產生的新鏡像名,如果輸入已有的鏡像名,則會覆蓋原有的鏡像。

        這裡可以看到已經產生好一個新的鏡像了,ID為:8717b405408e3df2a12b503e327226d35d6ce118ebc66178ca2bfe440bcb8f04。

 

    3)查看所有的鏡像

# docker images

        可以看到,剛剛我們產生的鏡像就在這裡了。

 

 5. 啟動鏡像

# docker run -d -p 80:80 -v /web:/www vckai/dev:v1 /sbin/init

        -d是以Daemon模式運行。

        -p 80:80 是將本地80連接埠映射到容器的80連接埠,現在可以在本地使用http://localhost訪問。

        -v /web:/www 是將本地的/web目錄掛載到容器的/www(容器配置的web目錄)目錄下。

        vckai/dev:v1 是要啟動並執行鏡像名稱。

        /sbin/init 是容器運行後的系統初始化操作,主要用於啟動nginx,php-fpm,mysql服務。

        

    1)查看docker運行中的鏡像

# docker ps

 

    2)停止/重啟/kill/啟動容器(可選)

# docker stop/restart/kill/start <ID/Name>

        更多容器操作命令可以看這篇文章:Docker學習筆記。  

 

        這個時候你已經可以使用http://localhost 訪問你的網站了,咦,奇怪,居然訪問不了!突然想起沒在容器中配置開機啟動,以至/sbin/init初始化的時候沒把nginx+php+mysql啟動起來。

        現在只能先把容器停止,然後進入vckai/dev:v1這個容器,在/etc/rc.local檔案中添加nginx、php和mysql的啟動運行,然後在docker commit提交覆蓋vckai/dev:v1即可。

        

        另外,如果已經在運行中的容器,怎麼進入查看呢?兩種方式,一個ssh,另外一個使用nsenter。但是不建議使用ssh進入:為什麼不需要在 Docker 容器中運行 sshd。

        

    1)安裝nsenter

# docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter

    2)進入運行中的容器shell

# docker-enter 65615a

    65615a 是我們剛剛使用docker ps查看到的容器ID。

    3)啟動容器的nginx+php

# /data/apps/nginx/sbin/nginx# /data/apps/php/sbin/php-fpm

 

        OK,現在開啟網站已經是正常運行了!

 

參考資料:

Docker教程中文版本:https://code.csdn.net/u010702509/docker

Nsenter github:https://github.com/jpetazzo/nsenter

docker命令學習筆記:http://blog.csdn.net/we_shell/article/details/38368137?utm_source=tuicool

 

FAQ:

docker run -d -p 80:80 -v /web:/www vckai/dev:v1 /sbin/init
請問如何取消這個命令?

答:通過docker ps 查看容器的ID,再通過docker stop <容器ID>停止容器即可

轉:Docker建立centos的LNMP鏡像

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.