這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)Docker中怎么設(shè)置數(shù)據(jù)科學(xué)環(huán)境,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)公司專業(yè)提供成都主機(jī)托管四川主機(jī)托管成都服務(wù)器托管四川服務(wù)器托管,支持按月付款!我們的承諾:貴族品質(zhì)、平民價(jià)格,機(jī)房位于中國(guó)電信/網(wǎng)通/移動(dòng)機(jī)房,川西大數(shù)據(jù)中心服務(wù)有保障!
什么是Docker?為什么要嘗試一下?
Docker是在指定環(huán)境(稱為容器)中創(chuàng)建,部署和運(yùn)行所需應(yīng)用程序的最簡(jiǎn)單,最靈活的方法之一。 當(dāng)然,你問(wèn)自己什么是容器?
非技術(shù)性的解釋:就像上圖所示,在我們的情況下,您的本地機(jī)器是一個(gè)已經(jīng)在生產(chǎn)東西的島。 為了改善這一點(diǎn),您需要其他工具,這些工具(就像Docker徽標(biāo)一樣)裝在小容器中。 一旦設(shè)置好并運(yùn)行它們,它們就可以使用了。
技術(shù)說(shuō)明:容器是打包代碼及其所有依賴項(xiàng)的軟件的標(biāo)準(zhǔn)單元,因此應(yīng)用程序可以從一個(gè)計(jì)算環(huán)境快速運(yùn)行到另一個(gè)計(jì)算環(huán)境。 Docker容器映像是一個(gè)輕量級(jí)的,獨(dú)立的,可執(zhí)行的軟件軟件包,其中包含運(yùn)行應(yīng)用程序所需的一切:代碼,運(yùn)行時(shí),系統(tǒng)工具,系統(tǒng)庫(kù)和設(shè)置。 其他重要術(shù)語(yǔ):
圖片:只是容器的快照。
Dockerfile:這是一個(gè)Yaml文件,用于構(gòu)建您的映像。 在本課程的最后,您將擁有一個(gè)yaml文件模板,并將其用于您自己的容器規(guī)范。
DockerHub:在這里您可以推拉Docker映像并將其用于您自己的需求。 基本上,GitHub僅用于Docker。
為什么要使用Docker?
讓我向您概述我喜歡使用Docker的主要原因:
對(duì)于您作為數(shù)據(jù)科學(xué)家或數(shù)據(jù)分析師而言,泊塢窗意味著您可以專注于探索,轉(zhuǎn)換和建模數(shù)據(jù),而無(wú)需首先考慮您的數(shù)據(jù)環(huán)境所運(yùn)行的系統(tǒng)。 通過(guò)使用準(zhǔn)備在Docker容器中運(yùn)行的數(shù)千種應(yīng)用程序之一,您不必?fù)?dān)心分別安裝和連接它們。 Docker允許您在需要時(shí)在幾秒鐘內(nèi)部署所選的工作環(huán)境。
假設(shè)您不是項(xiàng)目中唯一的工作人員,但是您的團(tuán)隊(duì)成員也需要掌握代碼。 現(xiàn)在,一個(gè)選擇是,每個(gè)隊(duì)友都可以在具有不同體系結(jié)構(gòu),不同庫(kù)和不同版本應(yīng)用程序的環(huán)境中運(yùn)行代碼。 docker選項(xiàng)是每個(gè)成員都可以訪問(wèn)相同的容器映像,并使用docker啟動(dòng)該映像并準(zhǔn)備就緒。 Docker為團(tuán)隊(duì)中的每個(gè)人提供了可重復(fù)的數(shù)據(jù)環(huán)境,因此您可以立即開(kāi)始進(jìn)行協(xié)作。
Docker當(dāng)然還有其他幾個(gè)好處,特別是如果您使用的是Enterprise版本。 絕對(duì)值得探索,不僅會(huì)使您作為數(shù)據(jù)科學(xué)家受益。
安裝和運(yùn)行Docker
您可以立即安裝Docker桌面,這是您入門所需的內(nèi)容:在此處訪問(wèn)Docker Hub,為Mac或Windows選擇Docker版本并進(jìn)行安裝。 在您的本地機(jī)器上啟動(dòng)Docker之后,您就可以在頂部導(dǎo)航欄上看到這只可愛(ài)的小鯨魚(yú)-做得很好。
通過(guò)單擊Docker徽標(biāo),您可以查看Docker是否正在運(yùn)行。 另一種選擇是打開(kāi)命令行并輸入" docker info",以便您看到正在運(yùn)行的內(nèi)容。 以下是一些基本的Docker命令:
docker login#登錄Docker注冊(cè)表
docker run#創(chuàng)建一個(gè)新容器并啟動(dòng)
docker start #啟動(dòng)一個(gè)現(xiàn)有的容器
docker stop
docker ps [-a] #顯示所有容器
docker rm
docker rmi $(docker images -q)#刪除所有鏡像
您可以從一個(gè)簡(jiǎn)單的示例開(kāi)始,嘗試使用Jupyter筆記本。 您要做的就是在Docker Hub中查找映像,打開(kāi)終端并運(yùn)行docker。 在下面的示例中,您可以找到在localhost:8888上運(yùn)行的Jupyter —簡(jiǎn)單!
docker run -p 8888:8888 jupyter/scipy-notebook:2c80cf3537ca
雖然我們現(xiàn)在可以在容器中試用我們的應(yīng)用程序,但它并不是高級(jí)數(shù)據(jù)科學(xué)家正在尋找的完整數(shù)據(jù)環(huán)境。 您可能想要使用更高級(jí)的工具,例如Nifi進(jìn)行數(shù)據(jù)攝取和處理,Kafka進(jìn)行數(shù)據(jù)流傳輸,以及使用SQL或NonSQL數(shù)據(jù)庫(kù)在兩者之間存儲(chǔ)一些表。 我們還能使用Docker嗎? 答案:是的,當(dāng)然可以-Docker在這里為您管理所有工作。
Docker Compose:將它們組合在一起
要設(shè)置所需的數(shù)據(jù)環(huán)境,您可能希望在我們的本地計(jì)算機(jī)上運(yùn)行多個(gè)容器。 這就是為什么我們使用Docker Compose。 Compose是用于定義和運(yùn)行多容器Docker應(yīng)用程序的工具。 雖然單獨(dú)連接每個(gè)容器可能很耗時(shí),但docker compose允許多個(gè)容器的集合以非常直接的方式通過(guò)其自己的網(wǎng)絡(luò)進(jìn)行交互。 使用compose時(shí),您首先使用yaml文件配置應(yīng)用程序的服務(wù),然后使用單個(gè)命令(docker compose up)來(lái)創(chuàng)建并啟動(dòng)先前定義的所有服務(wù)。*
在下面的內(nèi)容中,您可以找到入門的主要步驟:
使用Dockerfile定義您的應(yīng)用環(huán)境,以便輕松復(fù)制
在docker-compose.yml中指定構(gòu)成數(shù)據(jù)環(huán)境的所有服務(wù)
在保存yaml文件的文件夾中打開(kāi)終端,然后運(yùn)行docker-compose up
docker-compose.yml可能類似于以下內(nèi)容。 并且盡管您可以肯定使用以下內(nèi)容作為模板,但絕對(duì)應(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)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。