在上乙個教程01中,我們成功的載入了我們的第乙個容器,並且我們使用docker run命令載入了兩個容器(在02中),我們由此得到兩個結論
1:我們可以和容器進行顯示的互動
2: 容器可以以一種後台執行的方式存在
並且我們學到了好幾個docker相關的命令
docker ps 顯示容器列表
docker log 給我們制訂容器顯示標準輸出
docker stop 停止制訂容器
docker客戶端是非常簡單的,每乙個操作都是一條命令,每乙個命令都有多個引數可以進行傳遞
$ docker run -i -t ubuntu /bin/bash
我們看一下docker version 的返回值
這條命令不僅會顯示docker的版本,而且會顯示出go語言的版本
client version: 0.8.0
go version (client): go1.2
git commit (client): cc3a8c8
server version: 0.8.0
git commit (server): cc3a8c8
go version (server): go1.2
last stable version: 0.8.0
docker幫助
你可以通過如下命令來獲取docker自帶的幫助文件:
docker –help
如果你想獲取指定命令的幫助,可以通過如下方式獲取
$ docker attach –help
usage: docker attach [options] container
attach to a running container
–help=false print usage
–no-stdin=false do not attach stdin
–sig-proxy=true proxy all received signals to the process
在容器中執行乙個web應用
我們已經學習了一些docker客戶端應用的,我們需要繼續學習比較重要的東西了,載入更多的容器,到目前為止,我們所有run的容器基本都沒什麼用處,那麼下面我們開始建立乙個web的容器的例子
我們要執行的是乙個python的應用,我們通過docker run來開始
我們來逐一分析一下這個命令都幹了什麼
-d -p ,-d我們已經知道了,說明是要讓我們的容器後台執行,但是-p我們沒有使用過,-p的目的是告訴docker去在所需要的埠之間進行對映(容器和主機之間的對映),之後對映之後,我們才可以通過主機的埠進行訪問
(此處的 -l 意思是last最後啟動的容器)
這個時候我們注意到prots部分
0.0.0.0:32768->5000/tcp
這個就是-p的作用,此例子中,容器的埠5000對應了主機的32768埠,當然,我們可能不希望使用32768這個埠來作為對映,我們可以通過簡單的命令指定對應的埠:
至於為什麼不直接使用1:1的關係把容器裡的埠對映到本機,原因是如果你啟動了兩個 剛剛一摸一樣的容器,1:1的埠對映就行不通了….
好了,我們可以通過開啟瀏覽器來訪問32768(我直接curl了)
網路簡便用法
雖然我們可以通過docker ps來獲取埠的情況,但是感覺很複雜,我們可以通過一種簡單的方式進行:
docker port
在使用的時候我們需要指定id 或者name (容器的)
docker port determined_bell 5000
(這個地方的5000是容器裡邊開發的埠)
檢視web應用日誌
docker logs -f determined_bell
-f 的作用和tail -f 中的作用是一致的,實時,最後
通過日誌我們也可以看到我們的應用跑在5000埠上
檢視容器中的程序
校驗我們的web應用容器(inspecting)
我們可以通過乙個命令來返回json格式的資料
例如針對我們現在容器
當然如果你覺得輸出太多,也可以直接輸出想要的某一特定專案,例如:
docker inspect -f 『}』 determined_bell
172.17.0.5
停止容器
下面說說如何停止容器,很簡單
docker stop determined_bell
然後我們在使用docker ps -l 就沒有資料了。
啟動容器
我們如果想再啟動它怎麼啟動呢?
docker start determined_bell
docker ps -l (又回來了…但是繫結的埠可能會變哦)
(我們也可以使用restart命令來完成停止和啟動命令)
刪除容器
docker rm determined_bell
error response from daemon: cannot destroy container determined_bell: conflict, you cannot remove a running container. stop the container before attempting removal or use -f
error: failed to remove containers: [determined_bell]
擦,居然報錯,為什麼?因為上一步我們把docker啟動了又,刪除之前一定要先停止再刪除
docker stop determined_bell
docker rm determined_bell
刪除成功
Docker 入門教程
冗餘步驟多。虛擬機器需要完整的作業系統,一些系統級別的操作步驟,往往無法跳過,比如使用者登入。啟動很慢。啟動作業系統需要多久,啟動虛擬機器就需要多久。可能要等幾分鐘,應用程式才能真正執行。體積小。容器只要包含用到的元件即可,而虛擬機器包含整個作業系統,所以容器檔案比虛擬機器檔案要小很多。啟動快。啟動...
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...