1. 程式人生 > >玩轉 docker 入門(2) docker-io 在 CentOS 7.4 的基本使用流程

玩轉 docker 入門(2) docker-io 在 CentOS 7.4 的基本使用流程

一、前言

上一篇文章中,我們已經將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