Docker創建centos的LNMP鏡像


 前段時間重裝了系統,今天剛好有時間,就用docker安裝一個lnmp開發環境,下面是我的安裝筆記。


 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鏡像已經下載下來了。

blob.png

 3.  運行容器

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


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

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

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

blob.png


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

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

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

        blob.png


 4. 制作生成新鏡像

         先查看下剛剛運行的容器(安裝lnmp的)的ID,在使用該ID生成新的鏡像。


    1) 查看剛剛運行的容器ID

# docker ps -lq

        blob.png

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


    2)提交生成新鏡像

# docker commit fe77b vckai/dev:v1

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

blob.png

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


    3)查看所有的鏡像

# docker images

blob.png

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


 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

blob.png


    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



免責聲明!

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



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