成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

讓 Docker 無處不在

開發 項目管理
作者:Timo Derstappen 譯者:Mark Shao 我答應過會繼續寫一些關于 docker 的文章。作為 CØ 中唯一一枚有本地 Linux 內核的幸運兒,我當仁不讓地寫點東西來分享自己如何在本地臺式機上管理所有項目。 為什么是 docker 而不是純 LXC 幾年前當我還在 Adcloud 的時候,開始使用 LXC 來建立所有的 微型服務 。鑒于我在臺式機上使用 Archlinux,效果還不錯。但是我們的生產環境是 Ubuntu 的操作系統,并且會用 chef 腳本來創建容器,而我仍然把這些容器當做機器來維護。

我已許諾會持續的寫些關于docker的文章。由于我是***一個在 CØ 中具有本地linux內核的幸運者, 因此我將寫一些關于怎樣在本地桌面上管理所有項目的文章。

為什么是docker,而不是純LXC?

幾年前,當我還在 Adcloud 時,就開始使用 LXC 來構建所有的微型服務。 鑒于我在臺式機上使用 Archlinux系統并且效果還不錯,但是我們的生產環境是 Ubuntu系統,并且可能會用 chef 腳本來創建容器,而我仍然把這些容器當做機器來維護。它們有自己的 DNS 域名、 IP 地址、 SSH 服務,和所有磁盤文件綁定。因此每當我開始一個新項目時,首先得通過 SSH 登錄到容器然后再開始工作。事實上我一點也不喜歡 Chef ,所以在離開 Adcloud 后我就放棄了 Chef 并開始使用 Babushka 。雖然后者能讓我以最簡單的方式來部署一個單機環境,但是創建新容器十分緩慢,當所有容器啟動之后占據了 SSD 上的大量磁盤空間,而且我還需要手動去配置多項服務。

所以當我***次啟動 Docker 容器的時候,它的速度之快真是讓人驚訝,更棒的是分層的文件系統可以減少磁盤的使用。

容器不等于機器

自從有了 Docker 容器以后,你就不需要考慮機器的概念了。它們只是在不同的內核命名空間中的進程,你希望它們可以保持精簡和干凈。它們也需要能夠運行在不同的環境中,所以我放棄了在容器中使用 SSH 。那我又是如何來創建我的項目呢?首先我創建了一系列容器,在上面安裝了我項目中需要安裝但不應該安裝在本地的工具。
在盒子里使用Go

我們先來看一下 github 上的 Dockerfile。

使用下面的別名在容器中啟動 go,隨后把容器移除:

  1. alias go="docker run --rm -t -i teemow/go" 

你甚至可以使用不同的標簽來運行不同版本的 go( go:1.1、go:1.2 等)。不過要讓它它真正工作,還需要更多操作。你可以把你當前的目錄綁定掛載到容器中,來做類似go get這樣的事情。

  1. alias go="docker run --rm -t -i -v \$(pwd):\$(pwd) -w \$(pwd) teemow/go" 

如果你有一個私有 git 庫的話,你甚至可以把你當前的 ssh 代理掛載到容器中:

  1. alias go="AGENT=\$(ls -1 --sort t /tmp/ssh-*/agent.* | head -1) && docker run --rm -t -i -v \$AGENT:\$AGENT -e SSH_AUTH_SOCK=\$AGENT -v \$(pwd):\$(pwd) -w \$(pwd) teemow/go" 

類似 GOPATH 這樣的環境變量也可以傳入到容器中。

你可以完全用你自己的工具來完成這些事情,這樣你的主機會很干凈。別忘了給你的不同版本的鏡像打上標簽,否則你很難跳回到之前的項目中。也許你可以給類似 rbenv ( dockerenv )的項目做記號。我已經創建了一系列包含工具的鏡像 ,比如 npm 、 grunt 、 coffee-script 、 aws-cli 和 tugboat 等等。

專家提醒: 不要過度使用別名,建議盡可能使用小腳本,比如 /usr/local/bin/ 。

Docker 樂高積木

如果你想要在不只一個容器上運行或者測試你的項目,那么就使用上面提到的別名來構建你的項目。你不能在同一個容器中運行你的Web服務,postgres和redis。每項服務應該有自己的容器,現在你需要做的就是把所有的“磚塊”組合起來。

Docker有一個特性稱之為“鏈接”,它可以幫助你做正在做的事情。一個被鏈接的容器通過環境變量導入本身。所以其他的容器能發現Ip地址和鏈接容器的接口。Heroku 使用了一種類似的方式來添加插件的信息。

 

但是你能使用fig使這一切更容易。只需要添加fig.yml文件到你的項目中并運行fig up去開啟整個環境。本地目錄會被綁定到一個容器上,如果文件被修改,文件監視器可自動重啟你的服務。Mac/Vagrant用戶對這個比較熟悉。我已在piratesinn angellist list添加了fig.yml文件。

事實上,甚至連 fig 自身也是運行在本機上的一個容器中。但是你需要把docker socket 服務綁定到 fig的容器中,這樣它才可以啟動其他容器。

未完待續。

譯文來源:http://www.dockboard.org/dockerize-all-the-things/

【編輯推薦】

  1. Docker如何將錯綜復雜的Linux代碼轉成開發者的魔法
  2. 你會用嗎?Linux五大數據可視化工具
  3. 深度專訪Linux Deepin郭攀 :圖標的故事
  4. 送給Linux愛好者精彩有趣的高清Linux壁紙
  5. 極力推薦:一個Docker的maven插件

 

【責任編輯:林師授 TEL:(010)68476606】

責任編輯:林師授 來源: dockboard.org
相關推薦

2021-10-29 15:30:37

SASE/網絡安全

2017-12-29 10:54:01

Python編程語言系統管理工具

2017-09-14 18:02:53

傷害學神挑戰

2022-09-16 10:44:17

物聯網通信網絡

2016-07-08 14:50:21

HTTPS加密

2019-04-30 14:05:20

思科ACI

2019-04-01 10:43:11

企業通信云通信華為

2011-07-27 13:23:40

數字天堂王安信息

2013-11-11 15:04:52

2024-06-03 17:24:34

2013-04-07 13:03:34

ASP.NET

2018-05-15 09:00:59

2023-08-18 14:39:52

5G4G

2013-12-30 10:05:54

Linux操作系統

2021-12-31 10:54:25

微軟AzureOpenAI

2011-08-28 10:40:43

IBMRational嵌入式開發

2022-06-08 14:47:32

Aruba混合辦公網絡

2015-01-08 15:31:22

CES2015智能硬件HomeKit

2011-11-23 14:01:35

數字天堂

2009-03-30 11:58:03

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩中文在线观看 | 伊人影院在线观看 | 午夜一区 | 成人高清视频在线观看 | 欧美成人aaa级毛片在线视频 | 国产一区二区三区在线 | 日韩精品在线观看免费 | 日韩av电影在线观看 | 午夜电影在线播放 | 欧美日韩中文在线观看 | 欧美一区视频在线 | 欧美亚洲一区二区三区 | 国产福利91精品一区二区三区 | 日本三级电影在线观看视频 | 国产欧美日韩一区二区三区在线观看 | 国产69精品久久久久777 | 精品日韩一区二区 | 久久一区二区三区四区 | 精品国产免费一区二区三区五区 | 日本不卡高字幕在线2019 | 午夜久久久久久久久久一区二区 | 国产在线视频一区二区 | 欧美成人a | 日本福利片 | 99热最新| 中文字幕在线二区 | 精品电影 | 久久黄色精品视频 | 蜜桃免费一区二区三区 | 福利社午夜影院 | 欧美午夜精品理论片a级按摩 | 在线观看中文字幕 | 一级毛片在线视频 | cao在线| 亚洲一区二区三区免费在线观看 | 日本久久福利 | 日本午夜在线视频 | 日韩成人av在线播放 | 国产视频久久 | 国产精品一区二区电影 | 成人欧美一区二区三区在线观看 |