什么是Docker?
Docker是一個開源的引擎,可以輕松的為任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬機)、bare metal、OpenStack 集群和其他的基礎應用平臺。
Docker通常用于如下場景:web應用的自動化打包和發布;
自動化測試和持續集成、發布;
在服務型環境中部署和調整數據庫或其他的后臺應用;
從頭編譯或者擴展現有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環境。
下面給大家介紹下常用命令
Docker 常用命令
操作容器
啟動容器
啟動容器并啟動bash(交互方式):
$docker run -i -t <image_name/continar_id> /bin/bash
啟動容器以后臺方式運行(更通用的方式):
$docker run -d -it image_name
ps:這里的 image_name 包含了tag:hello.demo.kdemo:v1.0
附著到容器
附著到正在運行的容器
docker attach <id、container_name>
進入正在運行的容器內部,同時運行bash(比attach更好用)
docker exec -t -i <id/container_name> /bin/bash
ps:docker exec是如此的有用,以至于我們通常是將其封裝為一個腳本,放到全局可調用的地方,比如,可以寫成一個indocker.sh:
$cat indocker.sh docker exec -t -i $1 /bin/bash# 查看需要附著的容器id$docker ps | less -SCONTAINER ID IMAGE 9cf7b563f689 hello.demo.kdemo:v160525.202747$./indocker.sh 9cf7b563f689
查看容器日志
查看容器日志
docker logs <id/container_name>
實時查看日志輸出
docker logs -f <id/container_name> (類似 tail -f) (帶上時間戳-t)
查看容器
列出當前所有正在運行的container
$docker ps
用一行列出所有正在運行的container(容器多的時候非常清晰)
$docker ps | less -S
列出所有的container
$docker ps -a
列出最近一次啟動的container
$docker ps -l
顯示一個運行的容器里面的進程信息
$docker top Name/ID
查看容器內部詳情細節:
$docker inspect <id/container_name>
在容器中安裝新的程序
$docker run image_name apt-get install -y app_name
Note: 在執行apt-get 命令的時候,要帶上-y參數。如果不指定-y參數的話,apt-get命令會進入交互模式,需要用戶輸入命令來進行確認,但在docker環境中是無法響應這種交互的。apt-get 命令執行完畢之后,容器就會停止,但對容器的改動不會丟失。
從容器里面拷貝文件/目錄到本地一個路徑
$docker cp Name:/container_path to_path
$docker cp ID:/container_path to_path保存對容器的修改(commit) 當你對某一個容器做了修改之后(通過在容器中運行某一個命令),可以把對容器的修改保存下來,這樣下次可以從保存后的最新狀態運行該容器。
$docker commit ID new_image_name
Note: image相當于類,container相當于實例,不過可以動態給實例安裝新軟件,然后把這個container用commit命令固化成一個image。
新聞熱點
疑難解答