docker基本命令
docker基本命令
docker對(duì)象包括鏡像和容器
info查看docker信息
能夠查看的信息包括注冊(cè)中心信息、docker源信息、容器數(shù)目、docker服務(wù)器、客戶(hù)端信息等。
docker info # 可以用來(lái)查看注冊(cè)中心信息以及docker源的信息
-f # 指定輸出格式,支持json和TEMPLATE(GO模板)

system管理docker系統(tǒng)
docker system [option]
df # disk usage
events # 獲取事件
prune # 移除未使用的數(shù)據(jù)
docker system df命令
docker system df [option]
--format # 支持json,table,TEMPLATE
-v # 顯示更多細(xì)節(jié)信息

鏡像Image
IMAGE ID 和 REPOSITORY:TAG唯一標(biāo)識(shí)一個(gè)鏡像
images查看鏡像
docker images # 查看當(dāng)前主機(jī)的本地鏡像庫(kù)

tag給鏡像打標(biāo)簽
docker tag imagename:tag imageID
rmi刪除鏡像
# 第一種方式
docker rmi image_name:tag
# 第二種方式
docker rmi image_id
import和load裝載鏡像
裝載鏡像有兩種策略分別用于應(yīng)對(duì)容器tar包和鏡像tar包
# 第一種方式應(yīng)對(duì)容器文件tar包的導(dǎo)入
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
# example
docker import myngin4_container.tar myngin4_image:1.0
# 第二種方式應(yīng)對(duì)鏡像tar包的導(dǎo)入
docker load [OPTIONS] file
# example
docker load -i hello_image.tar # 這部分不需要打標(biāo)簽的原因是打包之前的鏡像就有標(biāo)簽
save打包鏡像為tar包
docker save hello-world -o hello_image.tar

inspect觀察鏡像
docker inspect能夠返回鏡像或者容器的底層信息,包括ip,cmd、分層信息等等。
docker inspect image_name:tag
docker inspect image_id
history查看鏡像構(gòu)建歷史
docker history IMAGE
-q # quiet output, only image id
-H # human readable format
--format json # print output as json
build搭建鏡像
docker build --no-cache -t [image_name:tag] ./ -f ./Dockfile
docker build --no-cache -t [image_name:tag] .
-q # 不打印構(gòu)建過(guò)程

容器LXC(linux container)
每個(gè)容器有獨(dú)有的container_name和獨(dú)有的container_id。所以很多命令可以通過(guò)容器id代替容器name。
create創(chuàng)建容器
基于鏡像image_name:tag創(chuàng)建一個(gè)容器名為container_name的容器。有兩種方式docker create和docker run。docker run的作用是創(chuàng)建一個(gè)容器并運(yùn)行它;docker create只創(chuàng)建容器,而不運(yùn)行.
# /bin/bash是command
docker run -dit --name=container_name image_name:tag /bin/bash
-d # 后臺(tái)運(yùn)行
-i # 交互式響應(yīng)
-t # 偽終端啟動(dòng)
docker create -it --name container_name image_name:tag
rename重命名容器
docker rename mynginx new_name
ps查看容器
docker ps # 查看運(yùn)行中的容器
docker ps -a # 查看所有容器,包括未運(yùn)行的
-q # 只打印容器id
-l # 顯示最近創(chuàng)建的容器
-s # 顯示文件容量大小

run和exec執(zhí)行特定命令
# 如果在創(chuàng)建容器的時(shí)候,沒(méi)有執(zhí)行任何命令則可以通過(guò)exec去執(zhí)行一條指令,這只是一種用法
docker run -d --name=container_name image_name:tag # 無(wú)執(zhí)行命令
docker exec -it mynginx2 /bin/bash # 啟動(dòng)一個(gè)/bin/bash偽終端
此時(shí)的abcdefg是hostname

start啟動(dòng)容器
docker start mynginx2
restart重啟容器
docker restart mynginx2 # 容器關(guān)閉了可以進(jìn)行重啟
stop停止容器
docker stop mynginx2 # 停止運(yùn)行中的容器
退出容器
exit
rm刪除容器
docker rm container_name
docker rm -f container_name # 強(qiáng)制刪除容器
-v # 移除和容器相關(guān)匿名卷
export導(dǎo)出容器文件為tar包
# 注意這條命令將容器的文件系統(tǒng)導(dǎo)出到一個(gè)tar包,在導(dǎo)入時(shí)只能使用docker import導(dǎo)入容器文件為鏡像
docker export myngin4 -o myngin4_container.jar

inspect觀察容器或者鏡像
能夠查看容器的一些底層配置信息。
docker inspect container_name
docekr inspect container_id
cp容器和宿主機(jī)間復(fù)制文件
# 容器向宿主機(jī)復(fù)制文件
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
# example
docker cp myniginx:/home/share /home/share
# 宿主機(jī)向容器復(fù)制文件
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
docker cp /home/share myniginx:/home/share
logs查看容器日志
docker logs [OPTION] container
docker logs mynginx
-f # follows跟隨打印
-t # 顯示時(shí)間戳
-n # 顯示多少行
--since 1h30m5s # 從1h10min前開(kāi)始打印日志
--until 1h30m5s # 打印日志直到1h10min前
top監(jiān)控容器資源
可以查看容器的運(yùn)行的進(jìn)程ID以及進(jìn)程組ID
docker top container
diff查看容器文件系統(tǒng)的改動(dòng)
docker diff mynginx
update更新容器參數(shù)
docker update --cpu-period 10 # 限制CPU完全公平調(diào)度周期
docker update --cpu-shares int # 指定CPU份額
--cpus 2 # 指定CPU的數(shù)量為2
--memory 1G # 指定內(nèi)存為1G
commit提交命令
docker commit container_name image:tag # 提交鏡像
-a # 指定作者
-m # 提交描述
-c # 應(yīng)用dokerfile到創(chuàng)建的鏡像
port查看端口信息
docker port # 查看現(xiàn)有容器端口信息
數(shù)據(jù)持久化
創(chuàng)建容器的過(guò)程中,難免會(huì)遇到數(shù)據(jù)需要持久化,此時(shí)就需要掛載數(shù)據(jù)卷或者掛載宿主機(jī)目錄
volume數(shù)據(jù)卷
數(shù)據(jù)卷掛載時(shí),會(huì)將容器內(nèi)內(nèi)容,同步到數(shù)據(jù)卷中,如果數(shù)據(jù)卷中有內(nèi)容,則會(huì)被隱藏
docker volume create volume-name # 創(chuàng)建數(shù)據(jù)卷,一般會(huì)掛載到/var/lib/docker/volumes
docker volume ls # 查看所有數(shù)據(jù)卷
docker volume rm volume-name # 刪除數(shù)據(jù)卷
docker volume inspect volume-name # 觀察數(shù)據(jù)卷
掛載宿主機(jī)目錄
掛載宿主機(jī)目錄時(shí),如果容器內(nèi)目錄有內(nèi)容,而宿主機(jī)目錄中內(nèi)容為空;掛載后會(huì)發(fā)生,容器內(nèi)目錄被隱藏的情況。
-v /nice:/nice

浙公網(wǎng)安備 33010602011771號(hào)