創(chuàng)建docker
docker create imageName
使用 create 創(chuàng)建的 Docker 容器不會(huì)啟動(dòng), imageName 是鏡像名稱,需要通過鏡像來啟動(dòng)容器,Docker 會(huì)先在本地搜索該鏡像,本地沒有時(shí)會(huì)到公有倉(cāng)庫(kù)下載,并將其添加到本地。
如果要啟動(dòng)該容器使用:
docker start id/name
用過 docker start 來啟動(dòng)容器,通過 容器的ID 或者 容器的名字 來啟動(dòng)
docker ps // 查看正在運(yùn)行的容器
docker ps -a // 查看所有容器,包括正在運(yùn)行中的,和關(guān)閉狀態(tài)下的容器
關(guān)閉正在運(yùn)行的容器
docker stop
docker kill
容器創(chuàng)建后就與終端無關(guān),即使關(guān)閉了,該容器依然存在
sudo docker run -i -t --name=dockerName imageName /bin/bash
-i:打開容器的標(biāo)準(zhǔn)輸入
-t:告訴 Docker 為容器創(chuàng)建一個(gè)命令行終端
這兩個(gè)標(biāo)志為我們和容器提供了交互 shell 是創(chuàng)建容器的基本配置
--name:為容器命名,當(dāng)沒有使用這個(gè)標(biāo)記時(shí),Docker 會(huì)隨機(jī)為容器命名
/bin/bash:Docker 創(chuàng)建成功后會(huì)進(jìn)入容器內(nèi)的終端,出現(xiàn):
root@7238r37453443:/#
@ 前面是我們登入的 root,后面是容器的主機(jī)名
需要退出容器可以使用 ctrl + D 或者 exit 命令
docker ps -l // 查看最后創(chuàng)建的容器
docker ps -n=x // 查看 `x` 個(gè)數(shù)的容器
docker run --restart=always --name=dockerName -d imageName /bin/bash
--restart 標(biāo)志被設(shè)計(jì)成 always 表示:不管容器返回碼是什么,Docker 都會(huì)嘗試重啟容器
on-failure 表示:當(dāng)容器的返回值是非0時(shí), Docker 才會(huì)重啟容器
on-failure 標(biāo)志接受一個(gè)可選重啟次數(shù)
--restart=on-failure:5
表示最多嘗試重啟容器5次
刪除容器:
docker rm dockerId/dockerName // 刪除指定容器
docker rm `docker ps -a -q` // docker沒有提供一次性刪除所有容器的命令,可以通過此命令來實(shí)現(xiàn)刪除所有容器
-q 表示列出容器的Id, docker ps -a -q 表示查詢出所有容器,列出其ID
終端依附到交互型容器中
docker arrach dockerId/dockerName
使用 attach 依附到容器后要多按一次回車才會(huì)出現(xiàn)容器的 shell 交互頁(yè)面
查看 Docker 日志輸出
docker run -d --name deamon_logs ubuntu:14.04 /bin/bash -c 'for((i=0;1;i++));do echo $i; sleep 1;done'
docker logs -f dockerId/dockerName
logs 輸出是從容器啟動(dòng)到調(diào)用執(zhí)行l(wèi)ogs命令時(shí)的所有輸出,之后的日志不在輸出,并立即返回主機(jī)的控制臺(tái)
使用 -f 可以看到日志,并在不斷更新。
docker logs -f --tail=5 deamon_logs
docker logs -f --tail=5 -t deamon_logs
--tail可以限定日志輸出的長(zhǎng)度
-t 可以打印出日志的產(chǎn)生時(shí)間
docker top deamon_logs
可以看到容器的進(jìn)程
docker inspect deamon_logs
查看容器信息