002-容器命令

[TOC]

1. docker命令

1.1 鏡像

查看系統(tǒng)中存在的鏡像-a 列出所有images(包含歷史) lo

docker images 

獲取服務器上鏡像列表

docker search tutorial 

拉取鏡像

docker pull busybox 

刪除一個或多個image

docker rmi <image ID> 

1.2 容器

運行 busybox系統(tǒng)中的hello docker程序

docker run busybox /bin/echo Hello Docker 

使用鏡像創(chuàng)建容器

  • -i 標記保證容器STDIN是開啟的
  • -t 創(chuàng)建一個客戶端創(chuàng)建一個容器梆砸,讓其中運行 bash 應用抄沮,退出后容器關閉
  • --name 創(chuàng)建一個名稱centos_aways的容器,自動重啟
  • --restart參數(shù):always始終重啟份乒;on-failure退出狀態(tài)非0時重啟杀怠;默認為椰憋,no不重啟
docker run -i -t sauloal/ubuntu14.04 
docker run -i -t sauloal/ubuntu14.04 /bin/bash 
docker run -itd --name centos_aways --restart=always centos 

運行docker logs命令來查看job的當前狀態(tài):

docker logs $sample_job 或者docker logs -f 容器名

名為sample_job的容器,可以使用以下命令來停止:

docker stop $sample_job 

重新啟動該容器:

docker restart $sample_job 

如果要完全移除容器赔退,需要先將該容器停止橙依,然后才能移除

docker stop $sample_jobdocker rm $sample_job 

將容器的狀態(tài)保存為鏡像

docker commit $sample_job job1 
  • 再次啟動容器
  • 開啟/停止/重啟container
  • 再次運行某個container (包括歷史container)
docker start/stop/restart <container> 
docker start [container_id] 

進入正在運行的docker容器

docker exec -it [container_id] /bin/bash 

將docker容器中8080端口映射到主機上80端口 ,如果此處不加90,也就是本機端口的映射硕旗,docker也同樣會隨機映射一個本機端口 -d 后臺運行

docker run -i -t -p 90:8081 javaweb/centos:0.1 

刪除容器#:刪除一個或多個container docker

docker rm <container...> 

刪除所有的container

docker rm 'docker ps -a -q'

同上, 刪除所有的container

docker ps -a -q | xargs docker rm 

將主機/data目錄掛載到docker容器中/mnt下面

docker run -v /data:/mnt -i -t 980e0e4c79ec /bin/bash 

根據(jù)57c312bbaad1創(chuàng)建鏡像huangyong/javaweb:0.1

docker commit 57c312bbaad1 huangyong/javaweb:0.1 

進入已經(jīng)啟動的容器中

docker attach 容器名 

訪問docker客戶端

nc -U /var/run/docker.sock 

查看docker的運行狀態(tài)

status docker 

service命令管理docker進程start stop statusrestart

service docker stop 

以守護模式運行docker程序

docker -d 

查看docker信息

docker info 

使用h配置啟動選項

docker -H 

查看docker開放的端口隨機映射到主機上的端口

docker port 容器 端口

創(chuàng)建demo1和demo2的連接窗骑,并且在demo2容器中可以通過db的別名進行連接。

docker run -d  -P --name demo2 --link demo1:db 容器名

導出鏡像

docker save busybox-1 > /home/save.tar

導入鏡像

docker load -i 鏡像名稱

查看端口

runoob@runoob:~$ docker port bf08b7f2cd89
5000/tcp -> 0.0.0.0:5000

查看容器內(nèi)部運行進程

runoob@runoob:~$ docker top wizardly_chandrasekhar
UID     PID         PPID          ...       TIME                CMD
root    23245       23228         ...       00:00:00            python app.py

檢查docker底層信息

runoob@runoob:~$ docker inspect wizardly_chandrasekhar
[
    {
        "Id": "bf08b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85",
        "Created": "2018-09-17T01:41:26.174228707Z",
        "Path": "python",
        "Args": [
            "app.py"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 23245,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2018-09-17T01:41:26.494185806Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
......

1.3 容器鏈接

1.3.1 網(wǎng)絡端口映射

我們也可以使用 -p 標識來指定容器端口綁定到主機端口漆枚。
兩種方式的區(qū)別是:
-P :是容器內(nèi)部端口隨機映射到主機的高端口创译。
-p : 是容器內(nèi)部端口綁定到指定的主機端口。

unoob@runoob:~$ docker run -d -p 5000:5000 training/webapp python app.py
33e4523d30aaf0258915c368e66e03b49535de0ef20317d3f639d40222ba6bc0

runoob@runoob:~$ docker ps
CONTAINER ID        IMAGE               COMMAND           ...           PORTS                     NAMES
33e4523d30aa        training/webapp     "python app.py"   ...   0.0.0.0:5000->5000/tcp    berserk_bartik
fce072cc88ce        training/webapp     "python app.py"   ...   0.0.0.0:32768->5000/tcp   grave_hopper

綁定UDP端口

runoob@runoob:~$ docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
6779686f06f6204579c1d655dd8b2b31e8e809b245a97b2d3a8e35abe9dcd22a
runoob@runoob:~$ docker ps
CONTAINER ID        IMAGE               COMMAND           ...   PORTS                                NAMES
6779686f06f6        training/webapp     "python app.py"   ...   5000/tcp, 127.0.0.1:5000->5000/udp   drunk_visvesvaraya
95c6ceef88ca        training/webapp     "python app.py"   ...    5000/tcp, 127.0.0.1:5001->5000/tcp   adoring_stonebraker
33e4523d30aa        training/webapp     "python app.py"   ...     0.0.0.0:5000->5000/tcp               berserk_bartik
fce072cc88ce        training/webapp     "python app.py"   ...    0.0.0.0:32768->5000/tcp              grave_hopper

快速查看端口綁定情況

runoob@runoob:~$ docker port adoring_stonebraker 5000
127.0.0.1:5001

1.3.2 Docker 容器互聯(lián)

新建網(wǎng)絡

參數(shù)說明:

  • -d:參數(shù)指定 Docker 網(wǎng)絡類型墙基,有 bridge软族、overlay。
    其中 overlay 網(wǎng)絡類型用于 Swarm mode残制,在本小節(jié)中你可以忽略它立砸。
$ docker network create -d bridge test-net

連接容器

$ docker run -itd --name test1 --network test-net ubuntu /bin/bash

查看網(wǎng)絡

docker network ps

1.3.3 配置DNS

我們可以在宿主機的 /etc/docker/daemon.json

文件中增加以下內(nèi)容來設置全部容器的 DNS:

設置后,啟動容器的 DNS 會自動配置為 114.114.114.114 和 8.8.8.8初茶。
配置完颗祝,需要重啟 docker 才能生效。

查看容器的 DNS 是否生效可以使用以下命令恼布,它會輸出容器的 DNS 信息:

{
  "dns" : [
    "114.114.114.114",
    "8.8.8.8"
  ]
}

查看DNS

$ docker run -it --rm ubuntu  cat etc/resolv.conf

如果只想在指定的容器設置 DNS吐葵,則可以使用以下命令:

參數(shù)說明:

  • -h HOSTNAME 或者 --hostname=HOSTNAME: 設定容器的主機名,它會被寫到容器內(nèi)的 /etc/hostname 和 /etc/hosts桥氏。
  • --dns=IP_ADDRESS: 添加 DNS 服務器到容器的 /etc/resolv.conf 中温峭,讓容器用這個服務器來解析所有不在 /etc/hosts 中的主機名。
  • --dns-search=DOMAIN: 設定容器的搜索域字支,當設定搜索域為 .example.com 時凤藏,在搜索一個名為 host 的主機時奸忽,DNS 不僅搜索 host,還會搜索 host.example.com揖庄。
$ docker run -it --rm host_ubuntu  --dns=114.114.114.114 --dns-search=test.com ubuntu

2.K8S命令

2.1 Namespace

查詢指定命名空間

kubectl get pods --namespace=development
kubectl describe pod tomcat-weixin-1508772460-9s1dk --namespace=ec-prod-app

查看命名空間描述

kubectl describe ns  XXX

2.2 Service

查看service

kubectl get service --all-namespaces

2.3 Pod

獲得哦命名空間下所有pod栗菜,包含宿主機IP

kubectl get pod --all-namespaces -o wide

查看pod描述

kubectl describe po  XXX

根據(jù)yaml文件刪除pod

kubectl delete -f bjyd-dp-wls-dev.yaml

根據(jù)yaml文件創(chuàng)建pod

kubectl create -f bjyd-dp-wls-dev.yaml

更新pod

kubectl replace /path/ to/ my- pod. yaml

2.4 擴所容

擴/縮容

kubectl scale rc redis-slave --replicas=3

根據(jù)yaml文件擴容

kubectl scale --replicas=3 -f bjyd-dp-wls-dev.yaml

查詢pod event

kubectl get event

2.5 日志

查詢?nèi)萜魅罩?/p>

$ kubectl create -f log- pod. yaml pod "log- pod" created
Pod 創(chuàng)建 成功 后, 會 重新 創(chuàng)建 異常 退出 的 容器 container2:

$ kubectl get pod log- pod NAME READY STATUS RESTARTS AGE log- pod 0/ 2 Error 1 19s
然后 分別 查詢 Pod 中 兩個 容器 的 日志:

$ kubectl logs log- pod container1
container1: 2015- 11- 21 14: 52: 55. 622701243+ 00: 00

$ kubectl logs log- pod container2
Pod "log-pod" in namespace "default": container "container2" is in waiting state.

Kubernetes 創(chuàng)建 Service 的 同時蹄梢, 會 自動 創(chuàng)建 跟 Service 同名 的 Endpoints:

$ kubectl get endpoints my- nginx -o yaml
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末疙筹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子禁炒,更是在濱河造成了極大的恐慌而咆,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件幕袱,死亡現(xiàn)場離奇詭異暴备,居然都是意外死亡,警方通過查閱死者的電腦和手機们豌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門涯捻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人望迎,你說我怎么就攤上這事障癌。” “怎么了辩尊?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵涛浙,是天一觀的道長。 經(jīng)常有香客問我对省,道長蝗拿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任蒿涎,我火速辦了婚禮哀托,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘劳秋。我一直安慰自己仓手,他們只是感情好,可當我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布玻淑。 她就那樣靜靜地躺著嗽冒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪补履。 梳的紋絲不亂的頭發(fā)上添坊,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天,我揣著相機與錄音箫锤,去河邊找鬼贬蛙。 笑死雨女,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的阳准。 我是一名探鬼主播氛堕,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼野蝇!你這毒婦竟也來了讼稚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤绕沈,失蹤者是張志新(化名)和其女友劉穎锐想,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體七冲,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡痛倚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年规婆,在試婚紗的時候發(fā)現(xiàn)自己被綠了澜躺。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡抒蚜,死狀恐怖掘鄙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嗡髓,我是刑警寧澤操漠,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站饿这,受9級特大地震影響浊伙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜长捧,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一嚣鄙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧串结,春花似錦哑子、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至把敞,卻和暖如春弥奸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背奋早。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工盛霎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留冒冬,地道東北人。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓摩渺,卻偏偏與公主長得像简烤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子摇幻,可洞房花燭夜當晚...
    茶點故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內(nèi)容