鏡像管理
查看本地鏡像
# 查看本地的所有鏡像
docker images
# 查看本地鏡像义辕,并根據(jù)條件篩選
docker images | grep "centos"
查找倉(cāng)庫(kù)的鏡像
# 向docker倉(cāng)庫(kù)查找鏡像
docker search <image_name>
# 從docker的官方倉(cāng)庫(kù)查找mysql鏡像
docker search mysql
# 從docker的私有倉(cāng)庫(kù)查找鏡像
docker search 192.168.137.101:5000/mysql
拉取鏡像
# 從倉(cāng)庫(kù)拉取鏡像到本地
docker pull <image_name>[:tag]
# 從docker的官方倉(cāng)庫(kù)下載mysql鏡像
docker pull mysql:5.6
# 從docker官方倉(cāng)庫(kù)下載最新的mysql鏡像
docker pull mysql
# 從docker的私有倉(cāng)庫(kù)下載mysql鏡像
docker pull 192.168.137.101:5000/mysql:5.6
推送鏡像
# 從本地上傳鏡像到docker倉(cāng)庫(kù)
docker push <image_name>[:tag]
# 上傳helloworld鏡像到docker官方倉(cāng)庫(kù)(此時(shí)需要帳號(hào)信息)
docker push helloworld:1.0
# 上傳registry.mateng.pers:5000/helloworld鏡像到私有倉(cāng)庫(kù)
docker push registry.mateng.pers:5000/helloworld:1.0
刪除鏡像
# 刪除本地鏡像(通過(guò)鏡像id或者鏡像名稱(chēng)刪除)
docker rmi <image_name>[:tag]
docker rmi <image_id>
# 刪除mysql鏡像
docker rmi mysql:5.6
創(chuàng)建目標(biāo)鏡像
# 重新給鏡像打標(biāo)簽和命名满俗,相當(dāng)于復(fù)制一份鏡像并重新命名
docker tag <image_name>[:tag] <image_name>[:tag]
# 將helloword的鏡像復(fù)制一份害晦,
# 并命名為registry.mateng.pers:5000/hello-world唱逢,其版本號(hào)為1.0
# registry.mateng.pers:5000為docker私有倉(cāng)庫(kù)的地址
docker tag hello-world registry.mateng.pers:5000/hello-world:1.0
參考資料
容器管理
容器啟動(dòng)停止
# 啟動(dòng)鏡像程储,并執(zhí)行相應(yīng)的命令配喳,命令可以附加一部分參數(shù)
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
# 啟動(dòng)helloword鏡像為容器憔狞,容器的名稱(chēng)是my-first-docker
docker run -d --name my-tomcat -p 8080:8080 tomcat:8.0
# 根據(jù)容器的id或名稱(chēng)停止一個(gè)已啟動(dòng)的容器
docker stop <CONTAINER_ID|CONTAINER_NAME>
docker stop my-tomcat
# 根據(jù)容器的id或名稱(chēng)啟動(dòng)一個(gè)已停止的容器
docker start <CONTAINER_ID|CONTAINER_NAME>
docker start my-tomcat
# 根據(jù)容器的id或名稱(chēng)重啟
docker restart <CONTAINER_ID|CONTAINER_NAME>
docker restart my-tomcat
# 刪除容器,刪除容器時(shí)椭迎,容器必須是停止?fàn)顟B(tài)
docker rm <CONTAINER_ID|CONTAINER_NAME>
docker rm my-tomcat
docker常用啟動(dòng)參數(shù)(OPTIONS)說(shuō)明
參數(shù) | 描述 |
---|---|
--name | 指定容器啟動(dòng)后的名稱(chēng)锐帜,如果不指定名稱(chēng),docker會(huì)隨機(jī)一個(gè) |
--restart=always | 自動(dòng)重啟侠碧,在容器意外停止抹估,狀態(tài)異巢颍或機(jī)器重啟等情況會(huì)自動(dòng)重啟) |
--restart=no | 不自動(dòng)重啟 |
--restart=on-failure[:max-retries] | on-failure:?jiǎn)?dòng)失敗時(shí)自動(dòng)重啟弄兜,并支持嘗試次數(shù) |
--link [container_name] | 鏈接某個(gè)容器,在容器內(nèi)部可以使用容器名代替ip進(jìn)行訪問(wèn)瓷式,有效的屏蔽了ip |
-d | 后臺(tái)運(yùn)行替饿,會(huì)返回一個(gè)容器id |
-i | 容器啟動(dòng)后可以給容器輸入命令 |
-t | 容器啟動(dòng)后分配一個(gè)tty終端,通常-i和-t配合使用 |
-e | 設(shè)置環(huán)境變量贸典,-e JAVA_HOME="/usr/local/java" |
-p <HOST_PORT>:<CONTAINER_PORT> | 將容器的端口映射到宿主的端口上 |
-v <HOST_PATH>:<CONTAINER_PATH> | 將容器的文件路徑映射到宿主機(jī)的文件路徑上 |
-m <xGB> | 內(nèi)存使用的上限视卢,-m 2GB |
-dns <ip> | 使用相應(yīng)的ip作為dns服務(wù),例如:-dns 8.8.8.8廊驼,默認(rèn)使用宿主機(jī)的dns |
參考地址
- https://docs.docker.com/engine/reference/commandline/run/
- https://docs.docker.com/engine/reference/commandline/start/
- https://docs.docker.com/engine/reference/commandline/restart/
- https://docs.docker.com/engine/reference/commandline/stop/
容器的監(jiān)控與運(yùn)維
# 查看已經(jīng)啟動(dòng)的容器
docker ps
# 顯示出來(lái)所有容器(包括曾經(jīng)運(yùn)行過(guò)据过,目前已停止的容器)
docker ps -a
# 顯示容器的最新的日志,-f選項(xiàng)就好比Shell終端中的“tail -f”中的-f選項(xiàng)
docker logs [-f] <CONTAINER_ID|CONTAINER_NAME>
# 顯示指定的每一個(gè)容器的當(dāng)前負(fù)載妒挎,比如CPU占用率绳锅、內(nèi)存使用率以及網(wǎng)絡(luò)流量等
docker status <CONTAINER_ID|CONTAINER_NAME>
# 該命令將容器的所有配置信息以JSON的格式轉(zhuǎn)儲(chǔ)出來(lái)顯示
docker inspect <CONTAINER_ID|CONTAINER_NAME>
# 進(jìn)入正在運(yùn)行的容器(已過(guò)時(shí),推薦使用docker exec)
docker attach <CONTAINER_ID|CONTAINER_NAME>
# 進(jìn)入正在運(yùn)行的容器酝掩,并進(jìn)入一個(gè)終端鳞芙,可以執(zhí)行shell部分命令
docker exec -it <CONTAINER_ID|CONTAINER_NAME> /bin/bash
# 該命令顯示容器與宿主機(jī)之間的所有端口映射信息
docker port <CONTAINER_ID|CONTAINER_NAME>
# 拷貝容器內(nèi)容文件到宿主機(jī)
docker cp <CONTAINER_ID|CONTAINER_NAME>:容器的目錄 宿主機(jī)的目錄
網(wǎng)絡(luò)管理
待續(xù)翁逞。。慌植。
數(shù)據(jù)卷管理
待續(xù)假瞬。。喳坠。
其他
# 查看docker的基本信息
docker info
# 查看docker版本
docker version
# 批量清理已停止的容器
docker rm -f $(docker ps -qa)
# 刪除沒(méi)有標(biāo)簽的鏡像
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
# 批量刪除孤單的 volumes
docker volume ls -qf dangling=true
docker volume rm $(docker volume ls -qf dangling=true)