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

如何使用 Docker 來協助 X 系統上的開發工作

開發 項目管理
很幸運的是,對于 Linux 運維人員來說,一個新的工具產生了,而該工具很有可能改變游戲規則:Docker ,一個開源的平臺,能夠以一種輕量級的方式打包應用程序以及它們的依賴。

對應用進行設置可能會相當復雜,尤其是在 Linux 系統上。不同應用有不同的配置方法,它們會在不同的文件系統路徑下(在不同的 Linux 發行版中,由于應用存在多種變種,這些路徑也會有所不同)保存二進制文件和數據。一旦你把系統配置好了,就很難再恢復到之前的狀態,尤其是你同時進行了一些其他修改的時候(比如,安裝了一些其他應用程序)。這也是最近諸如 Puppet、 Chef、 Ansible 和 Salt 這樣的部署工具流行的原因。但即使有了這些工具的幫助,創建 cookbook/recipe 也許也十分麻煩: Linux 系統并非以傻瓜化著稱,系統本身也不能讓你擺脫麻煩。

業界出現了一個新的工具

很幸運的是,對于 Linux 運維人員來說,一個新的工具產生了,而該工具很有可能改變游戲規則:Docker ,一個開源的平臺,能夠以一種輕量級的方式打包應用程序以及它們的依賴。

這到底意味著什么?

Docker 使你能夠在 Linux 系統上對不同的應用程序進行隔離,在不同的上下文環境中運行這些程序(這些程序可能執行在一臺物理機器上,也可能運行在不同的物理機器上),請記住,這一點非常重要:

  • Docker 使用了底層的內核機制做到了資源隔離,而并不需要其他資源消耗型的虛擬化技術,如果想了解更多細節,請點擊這里。
  • Docker 鏡像(一些保存的快照)以及 Docker 容器(運行時隔離應用程序的容器)與虛擬鏡像相比,使用起來快多了。
  • 容器十分靈活,你可以在容器里打包很多應用,你也可以只打包一個,同時你可以盡你所愿來運行容器。
  • Docker 容器里運行著一些鏡像,而這些鏡像之上有一個層的概念,分層使得你能夠很容易地構造你的應用程序(每次操作都可以很容易地回滾/前滾,你只需要簡單地增加或是刪除層,卻不會對下面的層產生影響)。
  • Docker ***地支持了“一次配置,到處運行”的范式。

在實踐中 Docker 是如何工作的?

或者這么講,至少對于我來說,它是這么工作的:

  1. 我已經在我的本地 Vagrant 環境中指定了 Docker 作為部署工具, Vagrant 從 1.6 版本就引入了這一功能。對于什么是 Vagrant ,以及它為什么是 X 平臺開發人員必備的工具,我認為無需贅述。

  2. Docker 已經為我自動下載了一些 Linux 發行版的鏡像(這些鏡像會被 Vagrant 使用,在 hypervisor 上運行)。

  3. 現在我能夠以至少兩種方式創建我自己的容器(正在運行的,實現資源隔離的應用程序):

  • ***種方式是制作一個用命令配置好的 Dockerfile ,這個 Dockerfile 基于干凈的 Linux 鏡像來生成,同時這些命令也使用了非常簡單的 DSL (領域特定語言)。這種方式是我比較喜歡的,而且確實實用。
  • 第二種方式是創建一個運行著終端的全新的容器,這樣的話你就可以在終端上執行你自己的命令,來做到你自己想做的事情。

 

  1. sudo docker build    
  2. ...  
  3. or    
  4. ...  
  5. sudo docker run -i -t <image_name> /bin/bash   

 

有些重要的事情需要記住

  1. 如果在 Dockerfile 里的命令執行完了,或者是通過 run 這個子命令運行的命令執行完了(因為它們并不是 daemon 程序),那么容器就會關閉并且消失!

  2. 當容器正在運行時,你可以十分方便地:

  • 查看容器中命令的輸出(docker logs)
  • 掛載到運行的容器(docker attach)
  • 列出容器內文件系統的實際變化(記得不同的容器并不能看到其他容器的變化!)(docker diff)
  • 暴露并且映射容器中的端口(比如,如果你正在搭建一個應用程序,而該應用程序在容器內已經有了相應的端口)(在 dockerfile 中的 EXPOSE 選項,Docker 命令的 -p 選項)
  1. 如果你想要通過手動執行命令的方式創建你自己的容器(run),你需要存儲你自己的鏡像 - 首先你需要在正在運行的容器列表里找到你想要的容器,然后執行commit命令:

 

  1. sudo docker ps    
  2. sudo commit <container name>   

 

通過使用以上所有的選項...

...我能夠:

  • 使用應用組件的任何組合來組成我的本地開發環境,添加或者刪除一個運行時組件就如同開啟或者關閉容器那么簡單。一旦我關閉了某個應用組件,那么它也從文件系統中完全消失了。
  • 非常方便地(回滾/前滾)創建出獨立的,隔離的應用容器,同時又不像虛擬鏡像那樣會耗費許多時間,也沒有不必要的操作系統開銷。
  • 實驗一系列很有意思的事情,卻幾乎不會冒重頭來過的風險(有鑒于此,Chef recipe 已經過時了...)。

...在我做到以上所有事情的同時,我的操作系統卻堅如磐石:我不會破壞任何事情,我可以很簡單地回滾我做的任何操作。安裝其他的容器也不會互相影響。

總之,在幾周的時間里,我已經把 Docker 作為了我的主要的軟件開發工具?,F在我已經無法想象缺少了 Docker 我該怎樣進行基于 JVM 的開發工作了。

原文鏈接:https://www.dockboard.org/how-ive-pimped-my-x-system-development-with-docker/

責任編輯:林師授 來源: Docker中文社區
相關推薦

2014-03-18 16:01:57

Arduino灌溉系統

2020-10-06 15:12:35

機器學習

2017-06-19 08:13:00

Sequel ProMySQL數據庫

2021-03-14 13:00:36

FedoraPoetry Python

2016-10-28 22:22:35

nodenode.jsdocker

2021-06-23 08:12:32

程序員物聯網開發

2014-12-25 10:15:37

DockerJava

2016-11-03 20:06:53

UbuntuGrafanaDocker

2022-06-10 10:01:17

MacDockerLinux

2019-03-04 10:45:57

Linux Cockp系統性能命令

2016-03-31 09:18:11

xcodetargets管理

2023-11-16 08:01:31

2024-01-17 15:48:39

CIOGenAI

2015-07-16 15:20:58

DockerDjango

2023-11-01 09:00:14

存儲Docker服務器

2012-10-30 09:44:33

敏捷開發

2016-01-15 09:56:44

LinuxUbuntuGlances

2014-07-14 09:24:51

Debiansystemd

2013-06-10 23:23:29

操作系統OS X

2014-11-19 13:46:30

云計算DockerDevice Mapp
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品一区二区三区蜜臀 | 亚洲国产一区二区三区在线观看 | 国产精品久久久久久久白浊 | 色综合视频 | 波多野结衣一区二区 | 国产精品成人在线播放 | 不卡视频一区二区三区 | 亚洲欧美日韩一区二区 | 亚洲精品久久久一区二区三区 | 久久精品99 | 欧美一二三四成人免费视频 | 成人h免费观看视频 | 国产精品一区二区久久 | 欧美高清成人 | 视频在线亚洲 | 最大av在线| 99热这里都是精品 | 亚洲精品久久久久久国产精华液 | 亚洲午夜视频在线观看 | 欧美不卡一区二区三区 | 久久国产视频一区 | 91久久精品国产91久久性色tv | 在线午夜 | 久久99精品久久久久久琪琪 | 国产视频线观看永久免费 | 麻豆精品国产91久久久久久 | 日韩欧美在线观看视频 | 成人黄色在线视频 | 精产国产伦理一二三区 | 女同久久另类99精品国产 | 欧美日韩亚洲国产 | 日韩毛片在线视频 | 色综合视频 | 欧美性tv| 久久婷婷国产 | 日韩av在线播 | 在线免费观看日本视频 | 色播久久 | www.蜜桃av.com| 视频一区在线观看 | 粉嫩av|