天津11选5最大遗漏:docker命令及容器命令

作者: 魯智深 分類: docker 發布時間: 2018-08-21 08:11

幫助命令

1
2
3
docker version #docker version :顯示 Docker 版本信息
docker info  #docker info : 顯示 Docker 系統信息,包括鏡像和容器數
docker -help #幫助文檔

天津11选5中奖结果 www.ebzvaz.com.cn 用法: docker [OPTIONS] COMMAND

一個容器自動運行所需

選項:
–config string 客戶端配置文件的位置 (默認”/home/atguigu/.docker”)
-D, –debug 啟用調試模式
-H, –host list 要連接的守護程序套接字
-l, –log-level string 設置日志記錄級別(“debug”|“info”|“warn”|“error”|“fatal”)(默認“info”
–tls 使用TLS;由–tlsverify暗示
–tlscacert string 由此CA簽署的信任證書(默認”/home/atguigu/.docker/ca.pem”)
–tlscert string TLS證書文件的路徑 (default “/home/atguigu/.docker/cert.pem”)
–tlskey string TLS密鑰文件的路徑 (default “/home/atguigu/.docker/key.pem”)
–tlsverify 使用TLS并驗證遠程
-v, –version 打印版本信息并退出

管理命令:
config 管理Docker配置
container 管理容器
image 管理圖像
network 管理網絡
node 節點管理Swarm節點
plugin 管理插件
secret 管理Docker的秘密
service 管理服務
stack 管理Docker堆棧
swarm 管理Swarm
system 管理Docker
trust 管理對Docker鏡像的信任
volume 管理卷

Commands:
attach 將本地標準輸入,輸出和錯誤流附加到正在運行的容器
build 從Dockerfile構建映像
commit 從容器的更改創建新圖像
cp 在容器和本地文件系統之間復制文件/文件夾
create 創建一個新容器
diff 檢查容器文件系統上的文件或目錄的更改
events 從服務器獲取實時事件
exec 在正在運行的容器中運行命令
export 將容器的文件系統導出為tar存檔
history 顯示圖像的歷史
images 列出圖像
import 從tarball導入內容以創建文件系統映像
info 顯示系統范圍的信息
inspect 返回Docker對象的低級信息
kill 殺死一個或多個正在運行的容器
load 從tar存檔或STDIN加載圖像
login 登錄Docker注冊表
logout 從Docker注冊表注銷
logs 獲取容器的日志
pause 暫停一個或多個容器中的所有進程
port 列出端口映射或容器的特定映射
ps 列出容器
pull 從注冊表中提取圖像或存儲庫
push 將圖像或存儲庫推送到注冊表
rename 重命名容器
restart 重新啟動一個或多個容器
rm 移除一個或多個容器
rmi 刪除一張或多張圖像
run 在新容器中運行命令
save 保存將一個或多個圖像保存到tar存檔(默認情況下流式傳輸到STDOUT)
search 搜索Docker Hub以獲取圖像
start 啟動一個或多個已停止的容器
stats stats顯示容器資源使用情況統計信息的實時流
stop 停止一個或多個正在運行的容器
tag 創建引用SOURCE_IMAGE的標記TARGET_IMAGE
top 顯示容器的運行進程
unpause 取消暫停一個或多個容器中的所有進程
update ?更新一個或多個容器的配置
version 顯示Docker版本信息
wait 阻止,直到一個或多個容器停止,然后打印退出代碼

運行’docker COMMAND –help’以獲取有關命令的更多信息。

鏡像命令

鏡像就像是類,可以生成多個容器。

藍色的大海——》宿主機系統windows10
鯨魚——-》 docker
集裝箱 ——-》 容器實例,來自我們的鏡像模版

docker image 列出本地主機的鏡像

列出本地鏡像

列出本地鏡像

同一個倉庫源可以有多個tag,代表這個倉庫源的不同個版本,我們使用repository:tag來定義不同的鏡像。

如果你不指定一個鏡像的版本標簽,例如你只使用ubuntu,docker將默認使用ubuntu:latest鏡像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#列出本地所有的鏡像(含中間映像層)
docker images -a

#列出鏡像id
docker images -q

#列出本地所有鏡像id(含中間映像層)
docker images -qa

#顯示鏡像的摘要信息
docker images --digests
#顯示完整的鏡像信息
docker images --no-trunc

#查詢docker上redis鏡像源,OFFICIAL(ok)代表官方版本
docker search [鏡像名稱]
docker上查找某個鏡像源

docker上查找某個鏡像源

1
2
3
4
5
6
7
8
#列出點贊數不小于30的鏡像源
docker search -s 30 redis

#列出點贊數不小于30的鏡像源,完整的摘要信息
docker search -s 30 --no-trunc redis

#列出自動構建類型的鏡像信息
docker search --automated
自動構建類型鏡像源

自動構建鏡像源

1
2
3
4
5
#下載鏡像
docker search -s 30 nginx
docker pull nginx
或者
docker pull nginx:版本
下載鏡像

下載鏡像

1
2
3
4
5
6
7
8
#刪除鏡像
docker rmi hello-world
或者
docker rmi hello-world:版本
或者強制刪除
docker rmi -f hello-world
或者
docker rmi -f 鏡像id
刪除鏡像

刪除鏡像

1
2
3
4
5
6
#刪除多個
docker rmi -f 鏡像id 鏡像id 鏡像id

#刪除全部
docker rmi $(docker images -qa)
-qa意思是全部的id

容器命令

docker 容器可以看做一個簡易版的liunx環境

1
2
3
4
docker search ubuntu
# 下載ubuntu鏡像
docker pull ubuntu
dcoker images
docker pull

docker pull

1
2
3
4
#登錄進入容器,并且開啟一個偽終端,啟動式交互
docker run -it 鏡像名稱或者id
#或者
docker run -it 鏡像名稱或者id /bin/bash
交互模式運行ubuntu鏡像

交互模式運行ubuntu鏡像

options 說明(常用):有些是一個減號,有些是兩個減號
-name=”容器新名字”:為容器指定一個名稱
-d:后臺運行容器,并返回容器id,也即啟動守護式容器:
-i:以交互模式運行容器,通常與-t同時使用
-t:為容器重新分配一個偽輸入終端,通常與-i同時使用
-P:隨機端口映射:
-p:指定端口映射,有以下四種格式
ip:hosPort:containerPort
ip:containerPort
hostPort:containerPort
containerPort

1
2
#列出當前所有運行的容器
docker ps
查看運行中容器

查看運行中容器

options說明(常用)
-a:列出所有運行的容器和歷史運行過的容器
-l:顯示最近創建的容器
-n:顯示最近n個創建的容器
-q:靜默模式,只顯示容器編號
–no-trunc:不截斷輸出

1
2
3
4
5
docker ps -a
docker ps -l
dcoker ps -n
docker ps -q
docker ps -aq #列出所有容器的id
docker操作

docker操作

退出容器,用docker ps 可以看到 狀態是 up

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 啟動容器
docker start 容器id

# 重啟容器
docker restart 容器id

# 暫停容器
docker stop 容器id

# 強制暫停容器
docker kill 容器id

# 刪除容器
docker rm 容器id

# 強制刪除容器
docker rm -f 容器id

# 清空容器
docker rm -f $(docker ps -aq)

# 刪除多個容器(清空容器)
docker ps -a -q | xargs docker rm

重要
用docker run -d ubuntu運行容器,問題是docker ps -a進行查看,會發現容器已經推出,為什么?

這樣要說明一點,docker容器后臺運行,就必須要有一個前臺進程,容器運行的命令如果不是哪些一直掛起的命令(比如運行top,tail),就是會自動退出的。

這個就是docker的機制問題,比如你的web容器,我們以nginx為例,正常情況下,我們配置啟動服務只需要啟動響應的service即可,例如service nginx start

但是,這樣做,nginx為后臺進程模式運行,就導致docker前臺沒有運行的應用。這樣的容器后臺啟動后,會立即自殺因為他覺得他沒事可做了。所以,最佳的解決方案是,將你要運行的程序以前臺進程的形式運行。

舉個簡單的例子:一家飯店沒什么生意,那么他們的廚子覺得沒事干,就放假了

解決:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 守護進程啟動docker ,并且按每2秒打印“hello ayf”
docker run -d ubuntu /bin/sh -c "while true;do echo hello ayf;sleep 2;done"

# 查看容器日志
dcoker logs 容器id

# 查看容器日志+時間
docker logs -t 容器id

# 查看容器日志并且實時追加更新
dcoker logs -t -f 容器id

# 查看容器日志最后3行日志并且實時追加更新
docker logs -t -f --tail 3 容器id
守護進程和日志

守護進程和日志

1
docker top 容器id

啟動docker 容器后,我們可以用docker top 容器id進行查看運行進程。

查看容器內運行的進程

查看容器內運行的進程

docker容器是“千層餅”形態,我們可以查看docker容器內部細節,如下命令,會返回json串,里面包含docker內部細節。

1
2
# 查看容器內部細節
docker inspect 容器id
docker內部細節

docker內部細節

下面進入正在運行的容器,并用命令行進入

1
docker attach 容器id
進入正在運行的容器

進入正在運行的容器

1
2
3
4
#不進入容器終端,直接shell命名,返回結果
docker exec -t 容器id ls -l /tmp
#進入容器終端
docker exec -t 容器id /bin/bash
進入容器

進入容器

注意:attach 和exec的區別是:

attach 直接進入容器啟動命令的終端,不會啟動新的進程
exec 是在容器中打開新的終端,并且可以啟動新的進程

如果我要刪除一個容器,但是我需要保存容器內的數據,就需要用到docker cp

1
2
# 從容器內拷貝文件到主機上
docker cp 容器id:容器內的路勁 目的主機路勁
拷貝容器文件

拷貝容器文件

如果覺得我的文章對您有用,請隨意打賞。您的支持將鼓勵我繼續創作!

一條評論
  • 948

    2018 年 8 月 24 日 09:56

    三天兩頭過來看一看,每次看完都有新體驗!

發表評論

電子郵件地址不會被公開。 必填項已用*標注