婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Docker簡單安裝與應用入門教程

Docker簡單安裝與應用入門教程

熱門標簽:如何分析地圖標注 電銷機器人價值 高德地圖標注好做嗎 達亞電銷機器人官網 電銷機器人怎么接線路 撫順地圖標注 大連400電話如何申請 外呼系統坐席費計入會計哪個科目 新余高德地圖標注怎么修改

本文實例講述了Docker簡單安裝與應用。分享給大家供大家參考,具體如下:

作為一個初次接觸Docker的人來說,最大的問題是Docker是什么?Docker是一個開源的引擎,可以輕松的為任何應用創建一個輕量級的、可移植的、自給自足的容器。比如,我們在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,可以用于自動化測試和持續集成、發布。

還可以用于web應用的自動化打包和發布;在服務型環境中部署和調整數據庫或其他的后臺應用;從頭編譯或者擴展現有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環境。

在Mac下安裝Docker

打開Docker下載網址下載穩定版本,并安裝和運行Docker。頂部狀態欄中的鯨魚指示Docker正在運行,并可以從終端訪問。

點擊頂部狀態欄中的鯨魚,選擇About Docker以驗證是否有最新版本。

運行這些命令來測試docker、docker-ompose、docker-machine版本是否是最新的,并且和Docker.app兼容。

$ docker --version
$ docker-compose --version
$ docker-machine --version

打開一個命令行終端,你可以運行一些Docker命令來驗證Docker是否正常工作。比如使用docker version來檢查你是否安裝了最新版本,使用docker ps來列出正在運行的容器,使用docker run hello-world運行示例程序。

使用docker run命令可以啟動一個新容器,這種單一的命令將觸發安裝運行序列:先在本機尋找該鏡像,如果本機找不到就去Docker Hub下載這個鏡像,并把鏡像加載到容器中,然后啟動該程序,這樣容器就運行起來了。其他系統可以參考官網文檔安裝。

Docker示例項目

現在開始使用Docker構建應用程序,從Docker應用程序的層次結構底部開始,應用程序是一個容器,在這個層次上面是一個服務,它定義了容器在運行時的行為方式,最后,在頂層是堆棧,定義了所有服務的交互。

在過去,如果要開始編寫一個Python應用程序,第一步就是在機器上安裝一個Python運行庫,但是,這會造成應用程序只能在您的機器運行。使用Docker可以將一個可移植的Python運行時環境作為一個鏡像來獲取,無需安裝。然后構建可以將基礎Python鏡像與應用程序代碼一起包括在內,確保您的應用程序、依賴項和運行時環境都一起移動。

這些可移植的鏡像是由一個叫做Dockerfile的東西來定義的。

用Dockerfile定義容器

Dockerfile將定義容器內的環境中發生了什么,訪問像網絡接口和磁盤驅動器這樣的資源是在這個環境中虛擬化的,這個環境與系統的其他部分是隔離的,所以必須將端口映射到外部世界,并具體說明想復制哪些文件到那個環境。完成這些工作后,這個Dockerfile中定義的應用程序在任何地方運行都將有完全相同的表現。

創建一個新的目錄,在新目錄下創建一個名為Dockerfile的文件,將以下內容復制并粘貼到該文件中保存。

# 使用官方的Python運行時環境作為父鏡像
FROM python:2.7-slim
# 將工作目錄設置為“/app”
WORKDIR /app
# 將當前目錄內容復制到“/app”的容器中
ADD . /app
# 安裝requirements.txt中指定的所有需要的軟件包
RUN pip install --trusted-host pypi.python.org -r requirements.txt
# 將端口80映射到外部世界
EXPOSE 80
# 定義環境變量
ENV NAME World
# 容器啟動時運行app.py
CMD ["python", "app.py"]

創建并編輯應用程序

創建requirements.txt文件,并放在與Dockerfile相同的目錄下。

Flask
Redis

創建app.py文件,并放在與Dockerfile相同的目錄下。

from flask import Flask
from redis import Redis, RedisError
import os
import socket
# 連接到Redis
redis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2)
app = Flask(__name__)
@app.route("/")
def hello():
  try:
    visits = redis.incr("counter")
  except RedisError:
    visits = "<i>cannot connect to Redis, counter disabled</I>"
  html = "<h3>Hello {name}!</h3>" \

      "<b>Hostname:</b> {hostname}<br/>" \

      "<b>Visits:</b> {visits}"
  return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits)
if __name__ == "__main__":
  app.run(host='0.0.0.0', port=80)

很簡單的就完成了應用程序部分,當Dockerfile被內置到鏡像中時,由于DockerfileADD命令,app.pyrequirements.txt將會出現,并且app.py的輸出將可以通過HTTP訪問,這要歸功于EXPOSE命令。

構建應用程序

打開一個命令行終端,確保仍然在新目錄的頂層,運行構建命令,這會創建一個Docker鏡像。

$ docker build -t friendlyhello .

構建的鏡像可以在本地Docker鏡像注冊表中看到。

$ docker images

運行應用程序

運行應用程序,使用-p將機器的端口4000映射到容器的已發布端口80。

$ docker run -p 4000:80 friendlyhello

現在應該看到一條消息,Python在http://0.0.0.0:80上提供應用程序,但是這個消息來自容器內部,它并不知道該容器的端口80映射到4000,因此正確的URL為http://localhost:4000

也可以在命令行終端中使用curl命令來查看相同的內容。

$ curl http://localhost:4000

這個4000:80的端口重映射是為了演示Dockerfile中的EXPOSE與使用docker run -p發布的內容之間的區別。在后面的步驟中,會將主機上的端口80映射到容器中的端口80,并使用http://localhost

在Mac下,在命令行終端中點擊CTRL + C即可退出。而在Windows系統下,CTRL + C不會停止容器。因此,首先鍵入CTRL + C來獲取提示,或打開另一個Shell,然后鍵入docker container ls列出正在運行的容器,接著是docker container stop <Container NAME或ID>以停止容器。否則,當嘗試在下一步中重新運行容器時,將從守護程序中收到錯誤響應。

現在以分離模式在后臺運行應用程序。

$ docker run -d -p 4000:80 friendlyhello

容器正在后臺運行,您還可以使用docker container ls查看CONTAINER ID。

$ docker container ls

可以看到CONTAINER IDhttp://localhost:4000上的內容匹配。現在使用docker container stop來結束進程。

$ docker container stop 9dfc794cdc52

分享鏡像

為了演示鏡像的可移植性,上傳我們構建的鏡像,并在其他地方運行它,畢竟,將容器部署到生產環境中時,需要學習如何使用注冊表。

一個注冊表是一個存儲庫的集合,一個存儲庫是一個鏡像集合,有點像GitHub存儲庫,除了代碼已經建立。注冊表上的帳戶可以創建許多存儲庫。Docker CLI默認使用Docker的公共注冊表。在這里使用Docker的公共注冊表,是因為它免費,并且是預配置的,但是有許多公共選項可供選擇,甚至可以使用Docker Trusted Registry設置您自己的私有注冊表。

使用Docker ID登錄

如果沒有Docker帳戶,請在Docker官網注冊一個。然后,登錄到本地機器上的Docker公共注冊表。

$ docker login

標記鏡像

將本地鏡像與注冊表中的存儲庫相關聯的符號是username/repository:tag,該tag是可選的,但推薦使用,因為這是注冊管理機構為Docker鏡像提供版本的機制。給存儲庫標記一個有意義的名字,比如get-started:part2,這會將鏡像放入啟動存儲庫,并將其標記為part2。

現在,把它們放在一起來標記鏡像,使用用戶名、存儲庫、標簽名稱運行docker tag image,以便鏡像將上傳到想要的目的地。

# 語法
$ docker tag image username/repository:tag
# 示例
$ docker tag friendlyhello john/get-started:part2

運行docker imagesdocker image ls以查看新標記的鏡像。

發布鏡像

將您標記的鏡像上傳到存儲庫。

# 語法
$ docker push username/repository:tag
# 示例
$ docker push john/get-started:part2

一旦完成,這個上傳的結果是公開的,如果你登錄到Docker Hub ,你將會看到那個新的鏡像和它的pull命令。

從遠程存儲庫中提取并運行鏡像

從現在開始,可以使用docker run并使用此命令在任何機器上運行您的應用程序。

# 語法
$ docker run -p 4000:80 username/repository:tag
# 示例
$ docker run -p 4000:80 john/get-started:part2

如果鏡像在機器上本地不可用,Docker將從存儲庫中取出。無論docker run在哪里,它都會將您的鏡像、Python以及所有依賴項從requirements.txt中提取出來,并運行您的代碼。它們被打包在行李箱中一起旅行,主機不需要安裝任何東西,除了Docker環境來運行它。

希望本文所述對大家docker容器的使用有所幫助。

標簽:南通 海東 湖南 楊凌 黃石 遼源 衡水 新鄉

巨人網絡通訊聲明:本文標題《Docker簡單安裝與應用入門教程》,本文關鍵詞  Docker,簡單,安裝,與,應用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Docker簡單安裝與應用入門教程》相關的同類信息!
  • 本頁收集關于Docker簡單安裝與應用入門教程的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    青青草精品视频| 亚洲一区自拍偷拍| 中文字幕一区二区三区四区不卡 | 日本中文一区二区三区| 午夜精品免费在线观看| 丁香另类激情小说| 成人福利电影精品一区二区在线观看| 精品国产乱码久久久久久牛牛| 精品视频在线免费| av资源网一区| 国产欧美一区二区精品性| 99这里只有精品| 国产成人夜色高潮福利影视| 色婷婷av久久久久久久| 懂色av中文字幕一区二区三区 | www.视频一区| 欧洲国产伦久久久久久久| 久久久久久久av麻豆果冻| 亚洲欧洲中文日韩久久av乱码| 亚洲一区二区三区四区在线免费观看 | 国产白丝网站精品污在线入口| 5566中文字幕一区二区电影| 亚洲免费观看高清完整 | 久久久国产精品午夜一区ai换脸| 亚洲日本va午夜在线电影| 美女视频黄免费的久久 | 日本aⅴ亚洲精品中文乱码| 在线观看中文字幕不卡| 中文字幕日韩一区| 日韩国产一区二| 色吊一区二区三区| 1024成人网色www| 精品一区二区影视| 欧美性受xxxx黑人xyx性爽| 亚洲天堂网中文字| 国产99久久久国产精品免费看| 2024国产精品| 日韩黄色免费网站| 777午夜精品免费视频| 国产精品高潮呻吟| 播五月开心婷婷综合| 日韩一区二区三区精品视频| 日本中文字幕不卡| 一区二区三区欧美久久| 欧美一级艳片视频免费观看| 久久综合九色综合97婷婷女人| 日韩精品一区二区三区在线| 激情小说亚洲一区| 国产精品一品二品| 国产视频在线观看一区二区三区 | 色婷婷综合久久久久中文| 久久久精品综合| 亚洲成人在线观看视频| 美女被吸乳得到大胸91| 波多野结衣视频一区| 久久精品欧美一区二区三区麻豆| 久久99国产精品成人| 91精品久久久久久蜜臀| 欧美国产丝袜视频| 成人免费视频一区| 国产日产精品一区| 麻豆久久久久久| 日韩亚洲欧美一区二区三区| 亚洲综合免费观看高清完整版在线 | 2023国产一二三区日本精品2022| 这里只有精品视频在线观看| 欧美精品久久久久久久多人混战 | 狠狠色综合色综合网络| 中文字幕乱码日本亚洲一区二区| 日韩三级在线观看| 欧美视频精品在线观看| 久久99精品国产.久久久久久| 成人免费av资源| 91小视频在线免费看| 日韩免费福利电影在线观看| 久久久久久一级片| 成人欧美一区二区三区视频网页 | 色哟哟日韩精品| 国产精品美女久久久久aⅴ国产馆| 免费成人av资源网| 五月激情综合色| 国产不卡免费视频| 国产日韩精品一区二区三区| 久久亚洲影视婷婷| 亚洲欧美怡红院| 亚洲同性同志一二三专区| 日韩欧美黄色影院| 国产不卡一区视频| 欧美日韩一二三| 久久这里只有精品视频网| 久久免费视频色| 亚洲综合图片区| 国产精品久久久久毛片软件| 91国产免费观看| 欧美体内she精视频| 欧美aaaaa成人免费观看视频| 欧美亚洲日本国产| 懂色av一区二区三区免费看| 精品在线亚洲视频| 免费在线观看一区| 看国产成人h片视频| 美腿丝袜亚洲色图| 国产精品一区二区三区99| 欧美喷水一区二区| 一区二区三区精品在线| 国产一区二区91| 欧美一二三在线| 精品国产一区二区三区四区四 | 欧美mv日韩mv| 亚洲图片激情小说| 日本国产一区二区| 亚洲在线成人精品| 国产aⅴ综合色| 精品国产免费一区二区三区香蕉| 久久精品99国产国产精| 欧美日韩国产高清一区二区三区| 国产午夜久久久久| 婷婷六月综合网| 豆国产96在线|亚洲| 91丨九色丨尤物| 欧美电影免费提供在线观看| 亚洲黄色录像片| 成人一区二区三区视频| 欧美久久婷婷综合色| 中国av一区二区三区| 亚洲一区精品在线| 91香蕉视频黄| 久久综合五月天婷婷伊人| 久久国产麻豆精品| 风间由美中文字幕在线看视频国产欧美| hitomi一区二区三区精品| 久久亚洲综合av| 国产成人精品免费一区二区| 欧美日韩精品一区二区三区四区| 制服.丝袜.亚洲.中文.综合| 亚洲午夜激情网站| 国产精品91一区二区| 欧美日韩中文字幕一区二区| 日韩不卡在线观看日韩不卡视频| 3751色影院一区二区三区| 亚洲国产综合色| 视频在线在亚洲| 伊人开心综合网| 亚洲国产一二三| 亚洲一区二区三区四区的| 亚洲国产乱码最新视频| 天天综合网天天综合色| 亚洲视频综合在线| 国产蜜臀av在线一区二区三区| 精品欧美一区二区三区精品久久 | 色婷婷国产精品| 色悠久久久久综合欧美99| 久久精品av麻豆的观看方式| 麻豆精品在线观看| 亚洲黄网站在线观看| 欧美伊人精品成人久久综合97| 国产成人精品三级| 26uuu精品一区二区三区四区在线| 国产老女人精品毛片久久| 亚洲美女区一区| 国产suv精品一区二区6| 欧美www视频| 欧美日韩在线播| 国产成人精品免费| 2020国产成人综合网| 97精品国产97久久久久久久久久久久| 专区另类欧美日韩| 亚洲伦理在线精品| 欧美激情艳妇裸体舞| 亚洲成年人网站在线观看| 午夜视频在线观看一区二区三区 | 成人免费视频播放| 中文av一区特黄| 欧美xxx久久| 欧美中文一区二区三区| 经典三级视频一区| 悠悠色在线精品| 国产欧美一区二区精品婷婷| 色系网站成人免费| 国产成人综合在线| 亚洲成人在线免费| 一区二区三区美女视频| 亚洲精品在线电影| 国产精品白丝jk黑袜喷水| 亚洲欧美日韩在线| 欧美日韩在线综合| 国产一区二区三区免费播放 | 丝袜国产日韩另类美女| 久久精品视频免费| 欧美精品vⅰdeose4hd| 九九**精品视频免费播放| 亚洲大片一区二区三区| 亚洲丝袜自拍清纯另类| 久久先锋影音av鲁色资源网| 日韩精品电影一区亚洲| 久久九九影视网| 日韩午夜av一区| 国产亚洲精品资源在线26u| 欧美福利视频一区| 色婷婷综合久久久中文字幕|