介紹
容器是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版本問題