您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)Docker中怎么設(shè)置數(shù)據(jù)科學(xué)環(huán)境,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
什么是Docker?為什么要嘗試一下?
Docker是在指定環(huán)境(稱為容器)中創(chuàng)建,部署和運(yùn)行所需應(yīng)用程序的最簡單,最靈活的方法之一。 當(dāng)然,你問自己什么是容器?
非技術(shù)性的解釋:就像上圖所示,在我們的情況下,您的本地機(jī)器是一個已經(jīng)在生產(chǎn)東西的島。 為了改善這一點(diǎn),您需要其他工具,這些工具(就像Docker徽標(biāo)一樣)裝在小容器中。 一旦設(shè)置好并運(yùn)行它們,它們就可以使用了。
技術(shù)說明:容器是打包代碼及其所有依賴項的軟件的標(biāo)準(zhǔn)單元,因此應(yīng)用程序可以從一個計算環(huán)境快速運(yùn)行到另一個計算環(huán)境。 Docker容器映像是一個輕量級的,獨(dú)立的,可執(zhí)行的軟件軟件包,其中包含運(yùn)行應(yīng)用程序所需的一切:代碼,運(yùn)行時,系統(tǒng)工具,系統(tǒng)庫和設(shè)置。 其他重要術(shù)語:
圖片:只是容器的快照。
Dockerfile:這是一個Yaml文件,用于構(gòu)建您的映像。 在本課程的最后,您將擁有一個yaml文件模板,并將其用于您自己的容器規(guī)范。
DockerHub:在這里您可以推拉Docker映像并將其用于您自己的需求。 基本上,GitHub僅用于Docker。
為什么要使用Docker?
讓我向您概述我喜歡使用Docker的主要原因:
對于您作為數(shù)據(jù)科學(xué)家或數(shù)據(jù)分析師而言,泊塢窗意味著您可以專注于探索,轉(zhuǎn)換和建模數(shù)據(jù),而無需首先考慮您的數(shù)據(jù)環(huán)境所運(yùn)行的系統(tǒng)。 通過使用準(zhǔn)備在Docker容器中運(yùn)行的數(shù)千種應(yīng)用程序之一,您不必?fù)?dān)心分別安裝和連接它們。 Docker允許您在需要時在幾秒鐘內(nèi)部署所選的工作環(huán)境。
假設(shè)您不是項目中唯一的工作人員,但是您的團(tuán)隊成員也需要掌握代碼。 現(xiàn)在,一個選擇是,每個隊友都可以在具有不同體系結(jié)構(gòu),不同庫和不同版本應(yīng)用程序的環(huán)境中運(yùn)行代碼。 docker選項是每個成員都可以訪問相同的容器映像,并使用docker啟動該映像并準(zhǔn)備就緒。 Docker為團(tuán)隊中的每個人提供了可重復(fù)的數(shù)據(jù)環(huán)境,因此您可以立即開始進(jìn)行協(xié)作。
Docker當(dāng)然還有其他幾個好處,特別是如果您使用的是Enterprise版本。 絕對值得探索,不僅會使您作為數(shù)據(jù)科學(xué)家受益。
安裝和運(yùn)行Docker
您可以立即安裝Docker桌面,這是您入門所需的內(nèi)容:在此處訪問Docker Hub,為Mac或Windows選擇Docker版本并進(jìn)行安裝。 在您的本地機(jī)器上啟動Docker之后,您就可以在頂部導(dǎo)航欄上看到這只可愛的小鯨魚-做得很好。
通過單擊Docker徽標(biāo),您可以查看Docker是否正在運(yùn)行。 另一種選擇是打開命令行并輸入" docker info",以便您看到正在運(yùn)行的內(nèi)容。 以下是一些基本的Docker命令:
docker login#登錄Docker注冊表
docker run#創(chuàng)建一個新容器并啟動
docker start #啟動一個現(xiàn)有的容器
docker stop
docker ps [-a] #顯示所有容器
docker rm
docker rmi $(docker images -q)#刪除所有鏡像
您可以從一個簡單的示例開始,嘗試使用Jupyter筆記本。 您要做的就是在Docker Hub中查找映像,打開終端并運(yùn)行docker。 在下面的示例中,您可以找到在localhost:8888上運(yùn)行的Jupyter —簡單!
docker run -p 8888:8888 jupyter/scipy-notebook:2c80cf3537ca
雖然我們現(xiàn)在可以在容器中試用我們的應(yīng)用程序,但它并不是高級數(shù)據(jù)科學(xué)家正在尋找的完整數(shù)據(jù)環(huán)境。 您可能想要使用更高級的工具,例如Nifi進(jìn)行數(shù)據(jù)攝取和處理,Kafka進(jìn)行數(shù)據(jù)流傳輸,以及使用SQL或NonSQL數(shù)據(jù)庫在兩者之間存儲一些表。 我們還能使用Docker嗎? 答案:是的,當(dāng)然可以-Docker在這里為您管理所有工作。
Docker Compose:將它們組合在一起
要設(shè)置所需的數(shù)據(jù)環(huán)境,您可能希望在我們的本地計算機(jī)上運(yùn)行多個容器。 這就是為什么我們使用Docker Compose。 Compose是用于定義和運(yùn)行多容器Docker應(yīng)用程序的工具。 雖然單獨(dú)連接每個容器可能很耗時,但docker compose允許多個容器的集合以非常直接的方式通過其自己的網(wǎng)絡(luò)進(jìn)行交互。 使用compose時,您首先使用yaml文件配置應(yīng)用程序的服務(wù),然后使用單個命令(docker compose up)來創(chuàng)建并啟動先前定義的所有服務(wù)。*
在下面的內(nèi)容中,您可以找到入門的主要步驟:
使用Dockerfile定義您的應(yīng)用環(huán)境,以便輕松復(fù)制
在docker-compose.yml中指定構(gòu)成數(shù)據(jù)環(huán)境的所有服務(wù)
在保存yaml文件的文件夾中打開終端,然后運(yùn)行docker-compose up
docker-compose.yml可能類似于以下內(nèi)容。 并且盡管您可以肯定使用以下內(nèi)容作為模板,但絕對應(yīng)該為自己配置一次:
version: '3' services: zookeeper: hostname: zookeeper container_name: zookeeper_dataenv image: 'bitnami/zookeeper:latest' environment: - ALLOW_ANONYMOUS_LOGIN=yes nifi: image: mkobit/nifi container_name: nifi_dataenv ports: - 8080:8080 - 8081:8081 environment: - NIFI_WEB_HTTP_PORT=8080 - NIFI_ZK_CONNECT_STRING=zookeeper:2181 minimal-jupyter-notebook: image: jupyter/minimal-notebook:latest ports: - 8888:8888 mongodb: image: mongo:latest container_name: mongodb_dataenv environment: - MONGO_DATA_DIR=/data/db - MONGO_LOG_DIR=/dev/null ports: - 27017:27017 grafana: image: bitnami/grafana:latest container_name: grafana_dataenv ports: - 3000:3000 db: image: 'postgres:9.6.3-alpine' container_name: psql_dataenv ports: - 5432:5432 environment: POSTGRES_DB: psql_data_environment POSTGRES_USER: psql_user POSTGRES_PASSWORD: psql PGDATA: /opt/psql_data restart: "no"
上述就是小編為大家分享的Docker中怎么設(shè)置數(shù)據(jù)科學(xué)環(huán)境了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。