1. 程式人生 > >docker入門(四)

docker入門(四)

如在文件中遇到什麼問題請聯絡作者 QQ:1172796094
本人正在找深圳Java實習工作,求大佬帶飛
——————————————————————————————————————
介紹
容器是docker的另一個核心概念

簡單的來說,容器是映象的一個執行例項,所不同的是它有額外的可寫檔案層。

如果認為虛擬機器是模擬執行的一整套作業系統(提供了執行態環境和其他系統環境)和跑在上面的應用。那麼docker容器就是獨立執行的一個或一組應用,以及它們的必須執行環境。

檢視容器列表
通過docker ps命令檢視正在執行的容器列表,需要查詢所有的容器需要加-a引數:

查詢正在執行的容器:docker ps

查詢所有容器 docker ps -a

建立容器

通過docker create 命令可以建立一個容器,這僅僅是建立,並沒有啟動容器。

用法: docker create --help

執行後顯示的重要點意思如下

-i, --interactive Keep STDIN open even if not attached 開啟容器的標準輸入

–name string Assign a name to the container 指定容器的名稱

-p, --publish value Publish a container’s port(s) to the host (default [])
指定埠,如:docker create -p 16399:6379 redis:3.0,其中16379是主機埠,6379是容器對外埠,二者對應起來

-t, --tty Allocate a pseudo-TTY 讓Docke分配一個偽端(pseudo-tt)並繫結到容器的標準輸入上

實戰:

docker create -p 16379:6379 --name redis redis:3.0

檢視容器列表:

docker ps -a

啟動容器:

docker start 34(34是代表指定容器的id,輸入前幾位即可)

建立並且執行容器
上面通過docker create建立了容器,然後通過docker start來啟動容器,其實這種做法並不常用。

更常用的是docker run命令,這個命令的意思是建立並且啟動容器。

用法:建立並且執行一個redis容器,它的埠是16380。

那麼命令就是

docker run -p 16380:6379 --name redis2 redis:3.0

輸入命令後發現,這個容器已經建立並且執行,但是,它並沒有在後臺執行,當按下 control + c時,該容器將停止。
為了讓容器在後臺執行,需要新增引數 -d。

docker run -p 16380:6379 -d --name redis2 redis:3.0

報錯說這個容器已經存在 所以我們要給他重新命名

docker run -p 16380:6379 -d --name redis3 redis:3.0

測試結果顯示,該容器可用。

接下來,我看下當前執行的容器:

目錄中有三個容器,redis,redis3正在執行,redis2退出執行。

那麼問題來了,redis2這個容器我不想要了,怎麼刪除?答

docker rm dc5b5c31b22a(dc5b5c**31b22a是這個容器的id)

啟動/停止容器
啟動容器:

docker start xxx(id或者容器名)

停止容器

docker stop xxx(容器名或容器id)
docker stop xxx(容器名或容器id)

刪除容器
通過命令docker rm 刪除容器,刪除正在執行的容器新增 -f 引數。

     docker rm xxx(容器id或者容器名)

進入容器
有些時候我們需要進入容器內,做一些操作,比如,修改配置檔案等。

進入容器命令。

docker exec

用法:

docker exec -it redis /bin/bash

如果出現錯誤並且code=2的話,docker版本問題