玩轉 docker 入門(2) docker-io 在 CentOS 7.4 的基本使用流程
阿新 • • 發佈:2019-02-05
一、前言
上一篇文章中,我們已經將docker部署到了伺服器上.
現在,我們將開始搜尋映象,拉取映象,啟動容器,製作映象,停止容器等相關docker的操作.
這次,我們想要安裝的映象是centos的官方映象.
20180706注:docker有很多的版本,本文安裝的docker是docker-io,版本為 1.13.1。
這個版本對於剛開始學習docker的同學來說,是沒有問題的。後續還會在這個系列文章中將其他的版本分別說明,並講解具體的安裝步驟。
希望大家繼續關注老劉,關注後續的其他文章。謝謝!
二、開始
1. 搜尋線上可用映象
docker search centos
顯示結果如下:
這裡可以看出,第一位的映象OFFICIAL是[OK]的,是官方映象,我們就下載這個.
2. 下載映象
docker pull centos
3. 檢視機器中已有的映象(按建立時間倒序)
docker images
4. 通過centos的映象啟動容器
4.1 通過互動模式啟動容器(容器啟動後,直接進入容器中,退出按ctrl+D)
docker run -i -t centos
4.2 後臺啟動容器(容器啟動後,在後臺默默執行)
docker run -d -i centos
5. 檢視正在執行的容器
docker ps
標題含義: CONTAINER ID:容器的唯一表示ID。 IMAGE:建立容器時使用的映象。 COMMAND:容器最後執行的命令。 CREATED:建立容器的時間。 STATUS:容器狀態。 PORTS:對外開放的埠。 NAMES:容器名。可以和容器ID一樣唯一標識容器,同一臺宿主機上不允許有同名容器存在,否則會衝突。
6. 進入後臺執行的容器(退出按ctrl+D)
docker exec -it thirsty_kare /bin/bash
7. 進入容器後,我們可以對容器進行正常的配置操作了.操作完之後按ctrl+D退出.
8. 當我們從容器中退出到控制檯的時候,我們對容器的操作並沒有被儲存,一旦容器停止執行,所有的設定就會丟失.
這時我們需要commit命令,來建立一個新的映象.
docker commit 容器id 新建立的容器名
9. 關閉後臺正在執行的容器
docker stop thirsty_kare
10. 刪除不需要的映象(需要先停止該映象所在容器的執行才能被刪除)
docker rmi 映象id
三、簡要說明
1. run命令的引數解釋
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-d, --detach=false 指定容器運行於前臺還是後臺,預設為false
-i, --interactive=false 開啟STDIN,用於控制檯互動
-t, --tty=false 分配tty裝置,該可以支援終端登入,預設為false
-u, --user="" 指定容器的使用者
-a, --attach=[] 登入容器(必須是以docker run -d啟動的容器)
-w, --workdir="" 指定容器的工作目錄
-c, --cpu-shares=0 設定容器CPU權重,在CPU共享場景使用
-e, --env=[] 指定環境變數,容器中可以使用該環境變數
-m, --memory="" 指定容器的記憶體上限
-P, --publish-all=false 指定容器暴露的埠
-p, --publish=[] 指定容器暴露的埠
-h, --hostname="" 指定容器的主機名
-v, --volume=[] 給容器掛載儲存卷,掛載到容器的某個目錄
--volumes-from=[] 給容器掛載其他容器上的卷,掛載到容器的某個目錄
--cap-add=[] 新增許可權,許可權清單詳見:http://linux.die.net/man/7/capabilities
--cap-drop=[] 刪除許可權,許可權清單詳見:http://linux.die.net/man/7/capabilities
--cidfile="" 執行容器後,在指定檔案中寫入容器PID值,一種典型的監控系統用法
--cpuset="" 設定容器可以使用哪些CPU,此引數可以用來容器獨佔CPU
--device=[] 新增主機裝置給容器,相當於裝置直通
--dns=[] 指定容器的dns伺服器
--dns-search=[] 指定容器的dns搜尋域名,寫入到容器的/etc/resolv.conf檔案
--entrypoint="" 覆蓋image的入口點
--env-file=[] 指定環境變數檔案,檔案格式為每行一個環境變數
--expose=[] 指定容器暴露的埠,即修改映象的暴露埠
--link=[] 指定容器間的關聯,使用其他容器的IP、env等資訊
--lxc-conf=[] 指定容器的配置檔案,只有在指定--exec-driver=lxc時使用
--name="" 指定容器名字,後續可以通過名字進行容器管理,links特性需要使用名字
--net="bridge" 容器網路設定:
bridge 使用docker daemon指定的網橋
host //容器使用主機的網路
container:NAME_or_ID >//使用其他容器的網路,共享IP和PORT等網路資源
none 容器使用自己的網路(類似--net=bridge),但是不進行配置
--privileged=false 指定容器是否為特權容器,特權容器擁有所有的capabilities
--restart="no" 指定容器停止後的重啟策略:
no:容器退出時不重啟
on-failure:容器故障退出(返回值非零)時重啟
always:容器退出時總是重啟
--rm=false 指定容器停止後自動刪除容器(不支援以docker run -d啟動的容器)
--sig-proxy=true 設定由代理接受並處理訊號,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理
2. docker 的十大常用命令
1、 從官網拉取映象
docker pull <映象名:tag>
如:docker pull centos(拉取centos的映象到本機)
2、搜尋線上可用映象名
docker search <映象名>
如:docker search centos( 線上查詢centos的映象)
3、查詢所有的映象,預設是最近建立的排在最上
docker images
4、檢視正在執行的容器
docker ps
5、刪除單個映象
docker rmi -f <映象ID>
6、啟動、停止操作
docker stop <容器名or ID> #停止某個容器
docker start <容器名or ID> #啟動某個容器
docker kill <容器名or ID> #殺掉某個容器
7、查詢某個容器的所有操作記錄。
docker logs {容器ID|容器名稱}
8、製作映象 使用以下命令,根據某個“容器 ID”來建立一個新的“映象”:
docker commit 93639a83a38e wsl/javaweb:0.1
9、啟動一個容器
docker run -d -p 58080:8080 --name javaweb wsl/javaweb:0.1 /root/run.sh
解釋:-d:表示以“守護模式”執行/root/run.sh指令碼
-p:表示宿主機與容器的埠對映,此時將容器內部的 8080 埠對映為宿主機的 58080 埠,這樣就向外界暴露了 58080 埠,可通過 Docker 網橋來訪問容器內部的 8080 埠了。
-name:為容器命名
10、啟動docker服務
service docker start