最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker快速入門(mén)以及環(huán)境配置詳解

 更新時(shí)間:2016年10月08日 15:31:09   投稿:daisy  
Docker應(yīng)該算是很熱門(mén)的技術(shù)了,之前一直沒(méi)怎么真正地去了解、接觸。通過(guò)翻譯這篇簡(jiǎn)單的教程,我同時(shí)也對(duì)Dcoker有了入門(mén)的了解。Docker確實(shí)是跨平臺(tái)開(kāi)發(fā)的利器。有需要的朋友們下面跟著小編一起來(lái)看看吧。

前言

數(shù)據(jù)科學(xué)開(kāi)發(fā)環(huán)境配置起來(lái)讓人頭疼,會(huì)碰到包版本不一致、錯(cuò)誤信息不熟悉和編譯時(shí)間漫長(zhǎng)等問(wèn)題。這很容易讓人垂頭喪氣,也使得邁入數(shù)據(jù)科學(xué)的這第一步十分艱難。而且這也是一個(gè)完全不常見(jiàn)的準(zhǔn)入門(mén)檻。

還好,過(guò)去幾年中出現(xiàn)了能夠通過(guò)搭建孤立的環(huán)境來(lái)解決這個(gè)問(wèn)題的技術(shù)。本文中我們就要介紹的這種技術(shù)名叫Docker。Docker能讓開(kāi)發(fā)者簡(jiǎn)單、快速地搭建數(shù)據(jù)科學(xué)開(kāi)發(fā)環(huán)境,并支持使用例如Jupyter notebooks等工具進(jìn)行數(shù)據(jù)探索。

簡(jiǎn)介

Docker 最初 dotCloud 公司內(nèi)部的一個(gè)業(yè)余項(xiàng)目

Docker 基于 Go 語(yǔ)言

Docker 項(xiàng)目的目標(biāo)是實(shí)現(xiàn)輕量級(jí)的操作系統(tǒng)虛擬化解決方案

Docker 的基礎(chǔ)是 Linux 容器(LXC)等技術(shù)

Docker 容器的啟動(dòng)可以在秒級(jí)實(shí)現(xiàn),這相比傳統(tǒng)的虛擬機(jī)方式要快得多

Docker 對(duì)系統(tǒng)資源的利用率很高,一臺(tái)主機(jī)上可以同時(shí)運(yùn)行數(shù)千個(gè) Docker 容器

下面的圖片比較了 Docker 和傳統(tǒng)虛擬化方式的不同之處,可見(jiàn)容器是在操作系統(tǒng)層面上實(shí)現(xiàn)虛擬化,直接復(fù)用本地主機(jī)的操作系統(tǒng),而傳統(tǒng)方式則是在硬件層面實(shí)現(xiàn)。

 

 

容器除了運(yùn)行其中應(yīng)用外,基本不消耗額外的系統(tǒng)資源,使得應(yīng)用的性能很高,同時(shí)系統(tǒng)的開(kāi)銷(xiāo)盡量小。傳統(tǒng)虛擬機(jī)方式運(yùn)行 10 個(gè)不同的應(yīng)用就要起 10 個(gè)虛擬機(jī),而Docker 只需要啟動(dòng) 10 個(gè)隔離的應(yīng)用即可。

主要優(yōu)勢(shì)為:

     更快速的交付和部署 - 容器成為了最小單位

     更高效的虛擬化 - 內(nèi)核級(jí)虛擬化

     更輕松的遷移和拓展

     更簡(jiǎn)單的管理

基本概念

主要是三個(gè):

鏡像(Image)

     一個(gè)只讀的模板,鏡像可以用來(lái)創(chuàng)建 Docker 容器

    可以簡(jiǎn)單創(chuàng)建或更新現(xiàn)有鏡像,或者直接下載使用其他人的

容器(Container)

    容器是從鏡像創(chuàng)建的運(yùn)行實(shí)例,在啟動(dòng)的時(shí)候創(chuàng)建一層可寫(xiě)層作為最上層(因?yàn)殓R像是只讀的)

    可以被啟動(dòng)、開(kāi)始、停止、刪除。每個(gè)容器都是相互隔離的、保證安全的平臺(tái)

    可以把容器看做是一個(gè)簡(jiǎn)易版的 Linux 環(huán)境(包括root用戶(hù)權(quán)限、進(jìn)程空間、用戶(hù)空間和網(wǎng)絡(luò)空間等)和運(yùn)行在其中的應(yīng)用程序

倉(cāng)庫(kù)(Repository)

    集中存放鏡像文件的場(chǎng)所

    最大的公開(kāi)倉(cāng)庫(kù)是 Docker Hub

    國(guó)內(nèi)的公開(kāi)倉(cāng)庫(kù)包括 Docker Pool 等

    當(dāng)用戶(hù)創(chuàng)建了自己的鏡像之后就可以使用 push 命令將它上傳到公有或者私有倉(cāng)庫(kù),這樣下次在另外一臺(tái)機(jī)器上使用這個(gè)鏡像時(shí)候,只需要從倉(cāng)庫(kù)上 pull 下來(lái)就可以了

    Docker 倉(cāng)庫(kù)的概念跟 Git 類(lèi)似,注冊(cè)服務(wù)器可以理解為 GitHub 這樣的托管服務(wù)

安裝

官方網(wǎng)站提供了 Mac, LinuxWindows 版本的安裝教程。因?yàn)槲掖蛩闶褂锰摂M機(jī)進(jìn)行安裝測(cè)試,所以這里主要走 Linux 的安裝教程,不過(guò)其他的應(yīng)該大同小異。我的 ubuntu 版本是 14.04 LTS, trusty

Docker 目前只能安裝在 64 位平臺(tái)上,并且要求內(nèi)核版本不低于 3.10,實(shí)際上內(nèi)核越新越好,過(guò)低的內(nèi)核版本容易造成功能的不穩(wěn)定??梢酝ㄟ^(guò)下面的命令來(lái)檢查內(nèi)核版本(兩個(gè)方式,都可以):

parallels@ubuntu:~$ uname -a
Linux ubuntu 3.13.0-83-generic #127-Ubuntu SMP Fri Mar 11 00:25:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
parallels@ubuntu:~$ cat /proc/version
Linux version 3.13.0-83-generic (buildd@lgw01-55) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #127-Ubuntu SMP Fri Mar 11 00:25:37 UTC 2016

這里我們按照官網(wǎng)的教程,不使用 apt-get 而是使用 curl 來(lái)進(jìn)行安裝。

     1、如果沒(méi)有安裝 curl,使用 sudo apt-get update; sudo apt-get install curl 來(lái)進(jìn)行安裝

      2、下載最新的 Docker 包 curl -fsSL https://get.docker.com/ | sh

      如果想要以 non-root 用戶(hù)的角色來(lái)使用,請(qǐng)使用 sudo usermod -aG docker parallels(這里 parallels 是用戶(hù)名),注意需要注銷(xiāo)并重新登錄以應(yīng)用改動(dòng)

     3、驗(yàn)證安裝

           需要先啟用 docker sudo service docker start

           然后可以用 docker version 來(lái)查看版本

          最后使用 docker run hello-world 來(lái)測(cè)試

版本信息

parallels@ubuntu:~$ docker version
Client:
 Version:  1.10.3
 API version: 1.22
 Go version: go1.5.3
 Git commit: 20f81dd
 Built:  Thu Mar 10 15:54:52 2016
 OS/Arch:  linux/amd64

Server:
 Version:  1.10.3
 API version: 1.22
 Go version: go1.5.3
 Git commit: 20f81dd
 Built:  Thu Mar 10 15:54:52 2016
 OS/Arch:  linux/amd64

成功運(yùn)行 hello world 的結(jié)果

parallels@ubuntu:~$ docker run hello-world

Hello from Docker.
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
 executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
 to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker Hub account:
 https://hub.docker.com

For more examples and ideas, visit:
 https://docs.docker.com/userguide/

這之后的部分是課程需求。

我們需要安裝 docker machine virtual box,具體步驟為:

# 獲取權(quán)限
$ sudo su
# 下載 Docker Machine 的二進(jìn)制文件 
$ curl -L https://github.com/docker/machine/releases/download/v0.6.0/docker-machine-`uname -s`-`uname -m` > /usr/local/bin/docker-machine && chmod +x /usr/local/bin/docker-machine
# 驗(yàn)證安裝
$ docker-machine version
docker-machine version 0.6.0, build e27fb87

添加源

把這行添加到 /etc/apt/sources.list 文件中 deb http://download.virtualbox.org/virtualbox/debian trusty contrib

       wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -

更新并安裝 sudo apt-get update; sudo apt-get install virtualbox-5.0

配置

然后是一些配置,先重設(shè)默認(rèn)的虛擬機(jī)

      刪除原來(lái)的默認(rèn)(如果有的話(huà))docker-machine rm default

      創(chuàng)建新的默認(rèn)虛擬機(jī) docker-machine create --driver virtualbox default(這一步可能需要等一下,我用的是 Parallel Desktop 11,還需要在虛擬機(jī)設(shè)置中開(kāi)啟 CPU 虛擬化,主要是支持 vt-x)

然后如果直接在菜單中選擇 Virtual Box 的話(huà),就會(huì)發(fā)現(xiàn)什么都沒(méi)有,技巧是要在剛才的命令行中輸入 virtualbox,然后就可以看到下面的界面:

在 Settings - Network 中選擇 Port Forwarding,然后按照如圖所示添加記錄

 

這里的 Host Port: 9234 記為 A,Guest Port: 9001 記為 B。然后就可以啟動(dòng) docker 中老師提供的鏡像了:

命令為 docker run -it -p 9001:9000 cmusvsc/apachecmda:1.1(需要下載一段時(shí)間,然后再解壓一段時(shí)間),這里 9001 記為 C,9000 記為 D。

接著就會(huì)直接連接到 docker 中的虛擬機(jī),從之后的圖中可以看到命令行前面的內(nèi)容也變化了。然后我們輸入命令開(kāi)啟前端

cd /home/Spring2016/ApacheCMDA-Frontend
./activator run # 相當(dāng)于在 9000 端口開(kāi)啟

不要關(guān)現(xiàn)在的終端,開(kāi)啟一個(gè)新的終端。用

docker exec -it `docker ps -q` /bin/bash

進(jìn)入正在執(zhí)行的 docker

等待一段時(shí)間后,繼續(xù)走以下命令

# 開(kāi)啟 MySQL 服務(wù)器
service mysql start
cd /home/Spring2016/ApacheCMDA-Backend
./activator "run 9034"

然后可以見(jiàn)到

然后等待一段時(shí)間(第一運(yùn)行需要編譯),就可以見(jiàn)到主頁(yè)面了:

也可以嘗試直接 localhost:9001

還記得前面的端口轉(zhuǎn)發(fā)嗎?這里解釋一下:

     A,也就是 9234,是用戶(hù)訪(fǎng)問(wèn)的端口號(hào)

     B,也就是 9001,我們通過(guò)虛擬機(jī)的端口轉(zhuǎn)發(fā)從 9234 轉(zhuǎn)到了 9001

     C,也就是 9001(這個(gè)命令中的 docker run -it -p 9001:9000 cmusvsc/apachecmda:1.1),是虛擬機(jī)繼續(xù)轉(zhuǎn)發(fā)的端口

     D,也就是 9000(這個(gè)命令中的 docker run -it -p 9001:9000 cmusvsc/apachecmda:1.1),是 Docker 容器中接收請(qǐng)求的端口。

也就是說(shuō),B 和 C 一定要一樣,A 和 D 可以在命令中設(shè)置。至于為什么后端需要運(yùn)行在 9034 端口,是因?yàn)榍岸撕秃蠖送ㄟ^(guò)這個(gè)端口通訊(應(yīng)該是寫(xiě)死在代碼里的)

掛載主機(jī)數(shù)據(jù)卷到容器內(nèi),可以通過(guò)如下命令進(jìn)行文件夾映射

docker run -it -p 9999:9999 -p 9001:9000 -v ~/localFolder:/sharedFolder cmusvsc/apachecmda:1.1

從容器內(nèi)拷貝文件到主機(jī)上

# 列出 container
docker ps
# 復(fù)制 這個(gè)不知道為啥不行
docker cp <containerId>:/file/path/within/container /host/path/target
# 掛載映射
docker run -it -v /home/parallels/Documents/code:/home/code cmusvsc/apachecmda:1.1
# 復(fù)制
cp -r Spring2016/* ./code/

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家能有所幫助,如果有疑問(wèn)大家可以留言交流。

相關(guān)文章

  • Docker基礎(chǔ)命令詳解

    Docker基礎(chǔ)命令詳解

    Docker 是一個(gè)開(kāi)源的應(yīng)用容器引擎,讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴(lài)包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上。本文給大家分享docker基礎(chǔ)命令,感興趣的朋友一起看看吧
    2016-10-10
  • 使用 docker-compose 運(yùn)行 MySQL的方法

    使用 docker-compose 運(yùn)行 MySQL的方法

    這篇文章主要介紹了使用 docker-compose 運(yùn)行 MySQL的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 基于Dockerfile創(chuàng)建zabbix監(jiān)控體系代碼實(shí)例

    基于Dockerfile創(chuàng)建zabbix監(jiān)控體系代碼實(shí)例

    這篇文章主要介紹了基于Dockerfile創(chuàng)建zabbix監(jiān)控體系代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Docker私有倉(cāng)庫(kù)打開(kāi)2375端口的實(shí)現(xiàn)

    Docker私有倉(cāng)庫(kù)打開(kāi)2375端口的實(shí)現(xiàn)

    本文主要介紹了Docker私有倉(cāng)庫(kù)打開(kāi)2375端口的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Docker創(chuàng)建MySQL的講解

    Docker創(chuàng)建MySQL的講解

    今天小編就為大家分享一篇關(guān)于Docker創(chuàng)建MySQL的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • IDEA 配置Docker的過(guò)程

    IDEA 配置Docker的過(guò)程

    這篇文章主要介紹了IDEA 配置Docker的過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Docker 限制容器的 Block IO使用

    Docker 限制容器的 Block IO使用

    本篇文章主要介紹了Docker 限制容器的 Block IO使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-08-08
  • SpringCloud與Docker的集成原理解析

    SpringCloud與Docker的集成原理解析

    Docker的核心原理是通過(guò)將應(yīng)用程序及其所有依賴(lài)項(xiàng)封裝到獨(dú)立的容器中,實(shí)現(xiàn)了跨平臺(tái)、一致性和可移植性,這篇文章主要介紹了SpringCloud-Docker原理解析,需要的朋友可以參考下
    2024-02-02
  • 使用?docker?部署?APISIX的詳細(xì)介紹

    使用?docker?部署?APISIX的詳細(xì)介紹

    這篇文章主要介紹了使用?docker?部署?APISIX的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Docker中的容器網(wǎng)絡(luò)以及其配置說(shuō)明

    Docker中的容器網(wǎng)絡(luò)以及其配置說(shuō)明

    這篇文章主要介紹了Docker中的容器網(wǎng)絡(luò)以及其配置說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04

最新評(píng)論

定远县| 罗江县| 南陵县| 双辽市| 天门市| 黄浦区| 寻乌县| 五台县| 广东省| 宝丰县| 名山县| 洪雅县| 社会| 会昌县| 唐山市| 青浦区| 河南省| 道孚县| 合山市| 镇沅| 闽侯县| 绥阳县| 平罗县| 永登县| 皋兰县| 新巴尔虎右旗| 调兵山市| 翁牛特旗| 苍溪县| 盐源县| 勃利县| 宝丰县| 阳原县| 双辽市| 临江市| 惠水县| 广宗县| 图片| 南昌市| 泾川县| 乐昌市|