首先需要在本地安裝一個虛擬器领炫,我用的是virtualbox翰苫,再安裝一個docker(https://docs.docker.com/engine/installation/)缸濒,根據你的操作系統(tǒng)選擇相應的版本澄干。利用docker去安裝ubantu系統(tǒng)(https://docs.docker.com/engine/installation/linux/ubuntu/#prerequisites)?
接下來安裝Nginx,可以使用命令docker pull nginx安裝(https://hub.docker.com/_/nginx/)趴樱,輸入下面的命令就可以啟動一個名為mynginx的Nginx容器。
docker run --name mynginx -P -d nginx
執(zhí)行docker ps,效果如下圖帅刊,在主機里的瀏覽器里輸入:localhost:32768即可訪問。
上面的步驟只是簡單的搭建一個Nginx服務器漂问,接下來說說如何把自己的項目放到宿主機的Nginx服務里
1赖瞒、首先要把主機里的文件copy到宿主機里女揭,關鍵命令是scp,如下圖所示栏饮,SCP后面的第一個參數是文件在主機里的位置吧兔,后面一個參數是你想要在宿主機里存放文件的路徑,路徑必須是絕對路徑袍嬉。
2境蔼、若是不知道宿主機的絕對路徑,可以用pwd命令查看伺通,使用docker-machine ssh dockerhost登錄宿主機箍土,執(zhí)行pwd命令即可查看宿主機的絕對路徑
3、執(zhí)行前兩個步驟后罐监,用ls查看就可以看到根目錄下有一個ssr文件夾涮帘,進入后,會有一個hacknews.zip文件笑诅。執(zhí)行unzip hacknews.zip命令可以解壓文件
4、編輯nginx配置文件疮鲫,進入/etc/nginx/conf.d目錄下吆你,執(zhí)行命令sudo vi hacknews.conf,創(chuàng)建并編輯hacknews.conf文件俊犯。如下圖所示
5妇多、hacknews.conf文件內容如下圖所示,listen默認是80燕侠,這里我重新改了一個端口者祖,在location / ?{}里的root是項目的路徑,這里我把之前拷入的hacknews放進去绢彤,所以就是/ssr/hacknews七问。
6、最后執(zhí)行docker run -d -v /etc/nginx/conf.d:/etc/nginx/conf.d -v /home/docker/ssr:/ssr -p 8888:8881 nginx命令就可以啟動一個Nginx容器茫舶,我在瀏覽器里輸入192.168.99.100:8888終于可以成功訪問了械巡。/etc/nginx/conf.d:/etc/nginx/conf.d是把宿主機conf.d文件夾下的配置文件掛載到容器的conf.d文件夾下,/home/docker/ssr:/ssr是把宿主機下ssr目錄下的文件掛載到容器的ssr下饶氏。
小結:
run:啟動容器讥耗,ps: 查看容器,rm:刪除容器疹启,stop:停止容器古程,start:啟動容器,kill:殺死一個容器喊崖,restart:重啟容器
Volume:Docker鏡像是由多個文件系統(tǒng)(只讀層)疊加而成挣磨。當我們啟動一個容器的時候雇逞,Docker會加載只讀鏡像層并在其上(譯者注:鏡像棧頂部)添加一個讀寫層。如果運行中的容器修改了現有的一個已經存在的文件趋急,那該文件將會從讀寫層下面的只讀層復制到讀寫層喝峦,該文件的只讀版本仍然存在,只是已經被讀寫層中該文件的副本所隱藏呜达。當刪除Docker容器谣蠢,并重新啟動通過該鏡像啟動時,之前的更改將會丟失查近。
為了能夠保存(持久化)數據以及共享容器間的數據眉踱,Docker提出了Volume的概念。我們可以在運行時使用-v來聲明Volume霜威。
docker exec -it a10 bash:進入名為a10(此處a10不是全名)的容器