<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] # Docker網絡 * * * * * ## 1. docker的端口映射 * docker中的應用想要與外界進行網絡通信,需要在運行container時指定宿主機與docker-container的端口映射 * 命令 1. 指定固定端口映射 docker run -p ip:hostPort:containerPort [--name] [-i] [-t] 鏡像名 [COMMAND][ARG...] ip:表示宿主機ip hostPort:宿主機端口號 containerPort:容器端口號 [--name]可以自定義container名稱 如: * sudo docker run -d -i -t -p 192.168.56.110:45612:8080 --name constantPort hub.c.163.com/library/ubuntu:14.04.5 /bin/bash 執行sudo docker ps -a ![](https://box.kancloud.cn/70811f306bf3d8019fd32c9f632d21e8_921x100.png) * 也可以加多個-p參數達到多個端口的固定映射 sudo docker run -d -it -p 48080:8080 -p 42222:22 --name ports hub.c.163.com/library/ubuntu:14.04.5 2. 宿主機端口到docker-container固定端口的隨機映射。 docker run -p containerPort [--name] [-i] [-t] 鏡像名 [COMMAND][ARG...] 如: sudo docker run -i -t -d -p 80 --name randomPort hub.c.163.com/library/ubuntu:14.04.5 /bin/bash -d:表示后臺運行 接下類執行sudo docker ps -a,查看容器運行狀態和端口映射關系:圖2 ![](https://box.kancloud.cn/c0e40300af94e59aa06c87107249d3e8_931x134.png) * * * * * ## 2.docker之Nignx簡單靜態頁面 1. 安裝nginx (1)apt-get update (2)apt-get install nginx (3)sysv-rc-conf nginx on 2. 修改nginx配 vim /etc/nginx/sites-enabled/default ~~~ server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.html index.htm; location / { root /usr/share/nginx/html; try_files $uri $uri/ =404; index index.html; } ~~~ * 訪問:宿主機+端口---->docker-container+端口 有兩種訪問方式 1. 宿主機+宿主機與docker-container映射端口 http://192.168.56.110:32781/ 訪問對應 圖2。 得到如圖3 ![](https://box.kancloud.cn/cca7ae294ea77faa3b01b38780726987_774x352.png) 2. docker-container的ip+端口(只限宿主機) * 執行ifconfig命令得到docker container ip * 執行 curl http://172.17.0.16 得到如圖 ![](https://box.kancloud.cn/2a9e7af12022576c29a837b2b9816fd6_843x514.png) * * * * * ## 3.利用Dockerfile構建鏡像,運行多端口映射 * 上面通過命令開啟了端口,但是對運行的容器開啟端口映射比較麻煩,也不是正規的做法,有兩種辦法 1. 在運行的容器構建鏡像(或者export+import鏡像),在通過dockerfile構建多端口映射鏡像。最后利用鏡像運行容器。 2. 在最基礎的鏡像上通過dockerfile構建多端口映射,最后利用這個鏡像運行容器。 ### 3.1 利用運行的容器制作鏡像 * docker commit [OPTIONS] <容器id> <新鏡像名> options: -a :提交的鏡像作者; -c :使用Dockerfile指令來創建鏡像; -m :提交時的說明文字; -p :在commit時,將容器暫停。 (1)查看容器id,docker ps -a ![](https://box.kancloud.cn/c0ae90595bcdfb4c0cda5349d0d52868_904x149.png) (2)執行commit命令 sudo docker commit -m "commit a test for ISO" -a "tuna_dai" a728d7f79412 myubuntu:1.0 (3) 查看鏡像 ![](https://box.kancloud.cn/54d65022202d403fd14f23f0fd21536e_914x132.png) * * * * * ### 3.2 Dockerfile創建容器 * Dockerfile是一種被Docker程序解釋的腳本,Dockerfile由一條一條的指令組成,每條指令對應Linux下面的一條命令 例子: ~~~ FROM hub.c.163.com/library/ubuntu:14.04.5 # MAINTAINER_INFO MAINTAINER dailin 931309012@qq.com # PORT EXPOSE 8080 EXPOSE 22 EXPOSE 80 EXPOSE 8005 EXPOSE 8443 ~~~ (1)構建Dockerfile文件 (2)構建鏡像 sudo docker build -t ubuntu:2.1 -f /home/tuna/dockerfile/Dockerfile /home/tuna ![](https://box.kancloud.cn/196d5b8526adf87e6ef07cd5208aee7e_869x208.png) * -t選項讓Docker分配一個偽終端(pseudo-tty)并綁定到容器的標準輸入上 * -f來指定Dockerfile文件的位置,后面的/soft及其目錄下必須能夠找到Dockerfile文件否則就會報上下文環境的錯誤,MV,COPY,ADD的文件位置都是相對/soft來說的,后面的路徑是包含dockerfile目錄的一個上層路徑 (3)運行容器 sudo docker run -d -it -P --name multipleports ubuntu:2.1 這里也可以用多個-p來實現固定dockerfile中定義的端口映射 通過docker ps查看一下 ![](https://box.kancloud.cn/4c4398b52bc7f0720c6e7d9555f6d2e7_923x139.png) 圖中容器multipleports已經開啟了8080,22,80,8005,8443端口的映射,這種方式達到了隨機映射,但是沒有固定映射端口。 1. FROM <鏡像>:構建指令,必須指定且需要在Dockerfile其他指令的前面。后續的指令都依賴于該指令指定的image。FROM指令指定的基礎image可以是官方遠程倉庫中的,也可以位于本地倉庫。 2. MAINTAINER(用來指定鏡像創建者信息) 構建指令,用于將image的制作者相關的信息寫入到image中。當我們對該image執行docker inspect命令時,輸出中有相應的字段記錄該信息。 3. RUN(安裝軟件用) 構建指令,RUN可以運行任何被基礎image支持的命令。如基礎image選擇了ubuntu,那么軟件管理部分只能使用ubuntu的命令。 4. EXPOSE(指定容器需要映射到宿主機器的端口) 設置指令,該指令會將容器中的端口映射成宿主機器中的某個端口。要完成整個操作需要兩個步驟,首先在Dockerfile使用EXPOSE設置需要映射的容器端口,然后在運行容器的時候指定-p選項加上EXPOSE設置的端口,這樣EXPOSE設置的端口號會被隨機映射成宿主機器中的一個端口號。也可以指定需要映射到宿主機器的那個端口,這時要確保宿主機器上的端口號沒有被使用。EXPOSE指令可以一次設置多個端口號,相應的運行容器的時候,可以配套的多次使用-p選項。 * * * * * ## 4. docker安裝ssh服務 1. 首先安裝ssh apt-get update apt-get install ssh -y 安裝sysv-rc-conf sysv-rc-conf ssh on ---設置ssh開機自啟 service ssh start 2. 如果root用戶沒有密碼,要給root用戶設置密碼 passwd root 3. 如果ssh可以建立連接,root用戶輸入密碼怎么都連接不上,去修改root的登錄控制,然后重啟ssh服務。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看