冗餘步驟多。 虛擬機器需要完整的作業系統,一些系統級別的操作步驟,往往無法跳過,比如使用者登入。
啟動很慢。啟動作業系統需要多久,啟動虛擬機器就需要多久。可能要等幾分鐘,應用程式才能真正執行。
體積小。 容器只要包含用到的元件即可,而虛擬機器包含整個作業系統,所以容器檔案比虛擬機器檔案要小很多。
啟動快。 啟動容器相當於啟動本機的乙個程序,而不是啟動乙個作業系統,速度就會快很多。
提供彈性的雲服務。因為 docker 容器可以隨開隨關,很適合動態擴容和縮容。
組建微服務架構。通過多個容器,一台機器可以跑多個服務,因此在本機就可以模擬出微服務架構。
企業版(enterprise edition,縮寫為 ee)
windows
ubuntu
debian
centos
fedora
其他 linux 發行版
$ docker version
# 或者
$ docker info
$ sudo groupadd docker
$ sudo usermod -ag docker $user
# service 命令的用法
$ sudo service docker start
# systemctl 命令的用法
$ sudo systemctl start docker
# 列出本機的所有 image 檔案。
$ docker image
ls# 刪除 image 檔案
... ...
$ docker container run -it ubuntu bash
$ docker container kill [containid]
# 列出本機正在執行的容器
$ docker container ls
# 列出本機所有容器,包括已經終止執行的容器
$ docker container ls --all
docker container rm [containerid]
$ docker container start [containerid]
$ git clone
$ cd koa-demos
.git
node_modules
npm-debug
.log
from node:8.4
workdir
runnpm install --registry=
expose
3000
expose 3000:將容器 3000 埠暴露出來, 允許外部連線這個埠。
$ docker image build -t koa-demo .
# 或者
$ docker image build -t koa-demo:0.0
.1 .
$ docker image
ls
$ docker container run -p 8000:3000 -it koa-demo /bin/bash
# 或者
$ docker container run -p 8000:3000 -it koa-demo:0.0
.1 /bin/bash
-it 引數: 容器的 shell 對映到當前的 shell,然後你在本機視窗輸入的命令,就會傳入容器。
koa-demo:0.0.1: image 檔案的名字(如果有標籤,還需要提供標籤,預設是 latest 標籤)。
/bin/bash: 容器啟動以後,內部第乙個執行的命令。這裡是啟動 bash,保證使用者可以使用 shell。
root@66d80f4aaf1e
#
root@66d80f4aaf1e
# node demos/01.js
# 在本機的另乙個終端視窗,查出容器的 id
$ docker container ls
# 停止指定的容器
$ docker container kill [containerid]
# 查出容器的 id
$ docker container ls --all
# 刪除指定的容器檔案
$ docker container rm [containerid]
$ docker container run
--rm -p 8000:3000 -it koa-demo /bin/bash
from node:8.4
workdir
runnpm install --registry=
expose
3000
cmd node demos/01.js
cmd 命令則是在容器啟動後執行;
dockerfile 檔案可以包含多個 run 命令,但是只能有乙個 cmd 命令。
$ docker container run --rm -p 8000:3000 -it koa-demo:0.0
.1
$ docker login
$ docker image tag
[imagename] [username]/[repository]:[tag]
# 例項
$ docker image tag
koa-demos:0.0.1 my_name/koa-demos:0.0.1
$ docker
image
build -t [username]/[repository]:[tag] .
$ docker image push [username]/[repository]:[tag]
$ docker container start [containerid]
$ bash container stop [containerid]
$ docker container logs [containerid]
$ docker container exec -it [containerid] /bin/bash
$ docker container cp [containid]:[/path/to/file] .
Docker入門教程
mongodb由c 語言編寫,是乙個基於分布式檔案儲存的開源資料庫系統,支援的資料結構為bson格式。我們開始用docker進行部署我們的mongodb。我們從docker的官網找到mongo對應的映象 於是我們進行拉取 我們讓我們的mongodb 跑起來 docker run d p 2017 2...
Docker 一 Docker入門教程
docker client docker 命令列工具,是使用者使用docker的主要方式,docker client與docker daemon通訊並將結果返回給使用者,docker client也可以通過socket或者restful api訪問遠端的docker daemon docker co...
Docker 二 Docker入門教程
docker 是乙個開源的應用容器引擎,基於 go 語言 並遵從apache2.0協議開源。docker 從 17.03 版本之後分為 ce community edition 社群版 和 ee enterprise edition 企業版 我們用社群版就可以了。docker 使用客戶端 伺服器 c...