牛腩學docker簡記


目標:在linux上裝docker, nginx, 然后 配置nginx讓其指向docker里的某個網站, 為了讓docker能運行一個網站,所以用了docker nginx的鏡像, 運行該鏡像即可得到一個nginx的示例頁面

步驟:
1. 買服務器,裝centos
2. 本地xshell連接服務器,在上面裝nginx (命令位置:/usr/local/nginx/sbin/nginx 配置文件位置:/usr/local/nginx/conf/nginx.conf)
3. 按docker官網的安裝步驟在服務器上裝docker,運行docker run hello-world 測試(https://docs.docker.com/install/linux/docker-ce/centos/) 4. docker pull nginx 拉取nginx鏡像
5. docker run -p 10000:80 -d nginx 運行docker nginx容器,把容器里的80端口映射到外面的10000端口
6. 在外面運行 curl localhost:10000 ,應該能看到docker nginx 容器里的示例頁面
7. 外面的/tmp/目錄建立index.html文件
8. docker cp /tmp/index.html 容器ID:/usr/share/nginx/html 把外面的index.html文件復制到容器里的那個目錄下,覆蓋原來的index.html文件,注:容器ID得完整名稱,16位字符那個,不能只輸入前4位字符
9. 重復步驟六,看看是否成功顯示新的index.html
10. 外面的nginx.conf配置文件里加上

 
        server{
            listen 80;
            server_name dockerdemo.niunan.net;
            location / {
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_ser_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://localhost:10000/;
            } 
        }
    


11. 在外面運行 /usr/local/nginx/sbin/nginx -t 檢查配置問題有無錯誤
12. 在外面運行 /usr/local/nginx/sbin/nginx -s reload 重新加載外面的nginx配置文件

13. 在自己的電腦的瀏覽器上瀏覽 http://dockerdemo.niunan.net ,成功!!!

14. 在外面運行 ln -s  /usr/local/nginx/sbin/nginx /bin/nginx  建立軟鏈接,這樣可以在任意目錄下運行nginx -t命令了,而不用每次都是先 cd /usr/local/nginx/sbin 后才能運行nginx -t命令

 

 

http://dockerdemo.niunan.net

 

 

 

2020年01月12日更新

------------------------------------------------------------------------

試了下.NET CORE項目,發布后用Dockerfile文件,然后再傳到服務器上測試部署,CORE先是不用數據庫的,就一個靜態頁,先測試一下,步驟如下:

1. VS項目里添加docker支持,他會生成一個Dockerfile文件,后面用到

2. VS項目里發布,發布到 d:/temp/niunantool目錄中

3. 到發布目錄里,建立app文件夾,把文件全移動到app目錄中,然后把第一步生成的Dockerfile文件復制到app的平級目錄,修改內容如下:

 

FROM microsoft/dotnet:2.2-aspnetcore-runtime
MAINTAINER niunan "niunan@2008.sina.com"
RUN mkdir app
WORKDIR /app
EXPOSE 80
COPY /app .
ENTRYPOINT ["dotnet", "Niunan.Tool.Web.dll"]

 

 

4. 用winscp工具把整個niunantool目錄上傳到服務器上的/tmp目錄下

5. ssh root@服務器IP ,輸入密碼連接上去

6. cd /tmp/niunantool

7. docker build -t niunantool .   記得命令后面有個., 這樣就會生成一個名字叫niunantool的鏡像

8. docker run -d -p 10002:80 niunantool  啟動niunantool鏡像,鏡像里的80端口映射到外面的10002端口

9. curl http://localhost:10002  順利的話應該能返回頁面HTML

10. 前面的改nginx.conf文件,加上相應的server段

 

 

 

   server{
        listen 80;
        server_name tool2.niunan.net;
        location / {
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://localhost:10002/;
        } 
    }

11. nginx -s reload 重新加載nginx配置文件,再訪問網站 http://tool2.niunan.net ,順利的話即可看到頁面


免責聲明!

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



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