docker-網絡基礎配置和dockerfile


00x1:

  端口映射:

  如圖:這就是把容器的 5000端口和主機的32768端口相映射,所以通過訪問主機的32768端口就可以訪問容器的web界面

  這個端口是系統默認的如果自定義命令:docker run -d -p 5123:5000 training/webapp python app.py

  同時可以多端口映射,可映射指定ip。

  

  

  docker logs -f training/webapp 查看容器內web應用信息

 

  docker port 容器名查看映射端口情況,有時候多端口映射的時候有用

 

 00x2:實現兩個容器的連接

  實現容器之間的互相通信: 在源容器和接受容器之間的創建一個隧道也就是容器互聯:

  命令是link  參數是 link name:alias     name 是連接容器的名字,而alias 是隧道也就是連接的名字:舉個實例:是web容器和數據庫容器之間的聯系

  先創建數據庫容器:先下載鏡像: docker pull training/postgres

  然后創建數據庫容器: docker run -d  -P --name db training/postgres

  先刪除之前下載的webapp/training 容器web,然后創建新的容器和數據庫容器建立聯系

  docker rm -f web

  建立新的容器連接db容器

  docker run -d --name web --link db:db training/webapp python app.py

  這個命令就是創建了名字叫 db的鏈接,鏈接的web容器和db容器 如圖:

  

  docker ps查看連接情況:

  這個注意的是數據庫安全情況,沒有用-p 為了不讓數據庫端口暴露在主機上

  env命令可以查看連接容器的環境變量

  還可以在容器的/etc/host 里面查看具體ip

 00x3:Dockerfile 詳情:

  Dockerfile 分為四個部分: 基礎鏡像信息,維護者信息,鏡像操作指定,和容器啟動指令,它是由一條一條語句組成,支持#號開頭的注釋行

  Dockerfile 基本命令: dockerfile 就是利用一系列的指令的順序解析實現自動的image

通過build 命令執行dockerfile 的描述來構建鏡像,dockerfile client 會把整個context 打包發送到Docker

 Server端,然后server端build鏡像,成功后刪除context目錄

  Dockerfile catch : 每次都會執行命令后提交一個鏡像,如果要重新使用之前的鏡像,可以通過-no-cache的方式來禁用這個cache

  Dockerfile 大小寫不敏感,但是建議全部大寫

  FROM 鏡像  必須第一行

  MAINTAINER 標識鏡像的作者

  RUN: run就是啟動容器,執行命令,然后提交存儲層文件變更,如果執行多條命令:需要加上:&& 符號可以有多個run,支持的是兩種運行方式:RUN <CMD> /bin/sh -c "cmd" 運行

  CMD命令:CMD命令的作用是容器的默認啟動命令,就是執行container的默認操作

  一個dockerfile 只要一個cmd 命令 ,當有多個cmd命令的時候,只執行最后一條。

  EXPOSE聲明端口:

  格式是: EXPOSE <端口1><端口2>  這個只是一個聲明,不會真正的應用,但是當隨機映射端口的時候,也是docker run -P的時候,會自動的使用這個鏡像服務端口

  ENV:

  ENV key value

  用來設置環境變量: 當鏡像創建容器的時候自動設置環境變量

  WORKDIR 指定當前的工作目錄

  這僅僅是基礎知識,對於dockerfiles的實戰還需加強學習

  

  


免責聲明!

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



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