docker常用命令

一掸绞、配置鏡像加速網(wǎng)站

一般鏡像網(wǎng)站都是國(guó)外拉取很慢,所以自定配置國(guó)內(nèi)鏡像網(wǎng)站耕捞,像我這里使用自己阿里云賬號(hào)提供的鏡像地址
以下配置方法配置鏡像加速器衔掸,是針對(duì)Docker客戶端版本大于 1.10.0 的用戶,如果低于這個(gè)版本敞映,鏡像加速配置方法可以百度找到就比較復(fù)雜一點(diǎn)
通過(guò)修改daemon配置文件/etc/docker/daemon.json來(lái)使用加速器

[root@master ~]# cat /etc/docker/daemon.json 
{
  "registry-mirrors": ["https://t5utj2u4.mirror.aliyuncs.com"]
}
[root@master ~]#

此處使用自己阿里云賬號(hào)頁(yè)面提供的鏡像地址即可振愿。

重啟docker

systemctl daemon-reload
systemctl restart docker

檢查是否生效

docker info
Registry Mirrors:
  https://t5utj2u4.mirror.aliyuncs.com/

二冕末、基本常用命令

查看本機(jī)鏡像

[root@localhost ~]#docker images

搜索centos相關(guān)鏡像

[root@localhost ~]#docker search centos

拉取鏡像

[root@localhost ~]#docker pull centos

docker中拉取指定版本的鏡像
比如:

docker pull centos:7
docker pull mongo:3.6.6
dockre pull redis:4.0

簡(jiǎn)單測(cè)試使用鏡像
docker: Docker 的二進(jìn)制執(zhí)行文件档桃。
run:與前面的 docker 組合來(lái)運(yùn)行一個(gè)容器藻肄。
centos指定要運(yùn)行的鏡像拒担,Docker首先從本地主機(jī)上查找鏡像是否存在澎蛛,如果不存在,Docker 就會(huì)從鏡像倉(cāng)庫(kù) 下載公共鏡像桐经。
/bin/echo “Hello world”: 在啟動(dòng)的容器里執(zhí)行的命令

[root@localhost ~]# docker run centos /bin/echo "hello-world"
hello-world

刪除鏡像

[root@localhost ~]#docker rmi 鏡像ID

進(jìn)入容器
-t 在新容器內(nèi)指定一個(gè)偽終端或終端阴挣。
-i 允許你對(duì)容器內(nèi)的標(biāo)準(zhǔn)輸入 (STDIN) 進(jìn)行交互

[root@localhost ~]# docker run -it centos /bin/bash
[root@678b1725d9e3 /]# ls
anaconda-post.log  bin  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@678b1725d9e3 /]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 
[root@678b1725d9e3 /]# 

使用exit或ctrl+d退出容器

[root@678b1725d9e3 /]# exit                    
exit
[root@localhost ~]# 

exec 命令 ID 或者 name

docker exec -it mynginx /bin/bash

后臺(tái)模式
-d 在后臺(tái)運(yùn)行容器并打印容器ID

[root@localhost ~]# docker run -d centos /bin/sh -c "while true; do echo hello world; sleep 1; done"
f66c5f63b4f5a6ca4d37575682e181fe8697c51db89d49ff0e59060c18a00b70

在輸出中畔咧,我們沒(méi)有看到期望的"hello world"誓沸,而是一串長(zhǎng)字符
2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
這個(gè)長(zhǎng)字符串叫做容器ID拜隧,對(duì)每個(gè)容器來(lái)說(shuō)都是唯一的趁仙,我們可以通過(guò)容器ID來(lái)查看對(duì)應(yīng)的容器發(fā)生了什么干奢。
首先忿峻,我們需要確認(rèn)容器有在運(yùn)行貌矿,可以通過(guò) docker ps 來(lái)查看容器ID

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS               NAMES
f66c5f63b4f5        centos              "/bin/sh -c 'while t…"   4 minutes ago       Up 4 minutes                                      laughing_keldysh

CONTAINER ID:容器ID
NAMES:自動(dòng)分配的容器名稱
在容器內(nèi)使用docker logs命令,查看容器內(nèi)的標(biāo)準(zhǔn)輸出
[root@localhost ~]#docker logs f66c5f63b4f5

停止容器

[root@localhost ~]#docker stop f66c5f63b4f5
f66c5f63b4f5

刪除容器或鏡像

[root@localhost ~]# docker rm 容器ID

強(qiáng)制刪除運(yùn)行的容器

[root@localhost ~]#  docker rm -f 容器ID

殺死所有正在運(yùn)行的容器

docker kill $(docker ps -a -q)

刪除所有已經(jīng)停止的容器

docker rm $(docker ps -a -q)

刪除所有未打 dangling 標(biāo)簽的鏡像

docker rmi $(docker images -q -f dangling=true)

刪除所有鏡像

docker rmi $(docker images -q)

docker rm 可以刪除容器 酌毡;但是刪除之前必須是 stop 狀態(tài)蕾管;

查看容器

docker ps :列出當(dāng)前所有正在運(yùn)行的container
docker ps -l :列出最近一次啟動(dòng)的container
docker ps -a :列出所有的container(包含歷史旭蠕,即運(yùn)行過(guò)的container)
docker ps -q :列出最近一次運(yùn)行的container ID

獲取所有容器ID

docker ps -a | awk '{ print $1}' | tail -n +2

Docker 端口映射

# docker run -d P sevrer
# docker run -d p port:port server
-d 后臺(tái)運(yùn)行掏熬;
-P -p 標(biāo)識(shí)來(lái)指定容器端口綁定到主機(jī)端口旗芬。
兩種方式的區(qū)別是:
-P : 是容器內(nèi)部端口隨機(jī)映射到主機(jī)的高端口。
-p : 是容器內(nèi)部端口綁定到指定的主機(jī)端口幔嫂。

默認(rèn)都是綁定 tcp 端口履恩,如果要綁定 UDP 端口切心,可以在端口后面加上 /udp
使用IP:HostPort:ContainerPort格式指定映射使用一個(gè)特定的地址

docker port ID/name 查看端口綁定
docker port website
docker run -d -p 4594:22 --name myos --privileged=true centos:latest /usr/sbin/init

啟動(dòng)容器報(bào)錯(cuò)問(wèn)題
結(jié)束容器進(jìn)程昙衅,清除網(wǎng)絡(luò)映射定鸟。重啟網(wǎng)卡 再起docker 啟容器联予。
關(guān)閉進(jìn)程

pkill docker

清除 nat 規(guī)則

iptables -t nat -F

關(guān)閉網(wǎng)卡

ifconfig docker0 down

刪除 虛擬網(wǎng)橋

brctl delbr docker0

最后重啟docker后解決

查看WEB 應(yīng)用程序日志

docker logs [ID或者name] 可以查看容器內(nèi)部的標(biāo)準(zhǔn)輸出沸久。
docker logs name
docker logs -f name  實(shí)時(shí)查看日志

查看容器進(jìn)程

docker top webstie

查看Docker 的底層信息

docker inspect 卷胯;
docker inspect website 

使用 docker inspect 來(lái)查看Docker的底層信息窑睁。它會(huì)返回一個(gè) JSON 文件記錄著 Docker 容器的配置和狀態(tài)信息担钮。

更改運(yùn)行容器的名稱

docker ps 查看運(yùn)行的容器狭姨;
docker rename myweb youweb

啟動(dòng)docker容器并在退出時(shí)自動(dòng)刪除

docker run -it --rm nginx /bin/bash

以上命令就是以命令行方式啟動(dòng)docker容器,并在退出時(shí)自動(dòng)刪除,使用bash作為當(dāng)前shell

啟動(dòng)運(yùn)行 nginx 容器示例

docker run -d nginx 后臺(tái)運(yùn)行 ;
docker exec :在運(yùn)行的容器中執(zhí)行命令
-d :分離模式: 在后臺(tái)運(yùn)行
-i :即使沒(méi)有附加也保持STDIN 打開(kāi)
-t :分配一個(gè)偽終端
docker exec -it mynginx /bin/sh

docker commit 編輯鏡像
從容器創(chuàng)建一個(gè)新的鏡像;

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
docker commit -a "name" -m "my-tomcat" website my-tomcat:v2
-a :提交的鏡像作者;
-c :使用Dockerfile指令來(lái)創(chuàng)建鏡像;
-m :提交時(shí)的說(shuō)明文字;
-p :在commit時(shí)赡模,將容器暫停;

容器上傳下載 拷貝文件cp

上傳測(cè)試文件:
docker cp start-kube.sh website:/root/

下載文件 docker cp 
docker cp website:/test.html /root/

進(jìn)入容器:

docker exec -it website /bin/bash

diff 查看容器的目錄結(jié)構(gòu)

docker diff ID/NAME
# docker diff webstie

配置一個(gè)centos系統(tǒng)并設(shè)置密碼

docker pull centos
docker tag centos:latest centos:v1
docker run -d -p 4594:22 --name myos --privileged=true centos:v1 /usr/sbin/init
docker exec -it myos /bin/bash
 ss -ntl
 yum install openssh-server
 systemctl restart sshd
  ss -ntl
  yum install passwd
  passwd 
 yum install initscripts net-tools

Docker容器里的centos、unbuntu無(wú)法使用 systemctl 命令的解決方案
例如:centos

docker run -d -it -p 4590:22 --privileged=true --name myos myos:v1
docker exec -it myos /bin/bash

注意:--privilaged=true一定要加上的欺缘。

docker容器設(shè)置自動(dòng)啟動(dòng)
啟動(dòng)時(shí)加--restart=always

docker run -tid --name myos -p 8081:8080 --restart=always -v /os/v1/log:/usr/local/tomcat/logs myos
    Flag    Description
    no      不自動(dòng)重啟容器. (默認(rèn)value)
    on-failure  容器發(fā)生error而退出(容器退出狀態(tài)不為0)重啟容器
    unless-stopped  在容器已經(jīng)stop掉或Docker stoped/restarted的時(shí)候才重啟容器
    always  在容器已經(jīng)stop掉或Docker stoped/restarted的時(shí)候才重啟容器

如果已經(jīng)啟動(dòng)的項(xiàng)目,則使用update更新:

docker update --restart=always myos

設(shè)置容器主機(jī)名和DNS

h HOSTNAME 或者 --hostname=HOSTNAME
--dns=IP_ADDRESS  使用指定的DNS服務(wù)器

使用-v選項(xiàng)共享物理機(jī)文件數(shù)據(jù)

-v /etc/hosts:/etc/hosts

當(dāng)然此法適用于容器hosts與宿主機(jī)hosts內(nèi)容一致的情況

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嫩絮,一起剝皮案震驚了整個(gè)濱河市剿干,隨后出現(xiàn)的幾起案子置尔,更是在濱河造成了極大的恐慌榜轿,老刑警劉巖谬盐,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诚些,死亡現(xiàn)場(chǎng)離奇詭異飞傀,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)诬烹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門助析,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人椅您,你說(shuō)我怎么就攤上這事」鸭” “怎么了掀泳?”我有些...
    開(kāi)封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵雪隧,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我员舵,道長(zhǎng)脑沿,這世上最難降的妖魔是什么韭邓? 我笑而不...
    開(kāi)封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任鸭你,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘裳凸。我一直安慰自己梦湘,他們只是感情好瓣颅,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布粉怕。 她就那樣靜靜地躺著稚晚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上楚昭,一...
    開(kāi)封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音庆亡,去河邊找鬼彰亥。 笑死仁卷,一個(gè)胖子當(dāng)著我的面吹牛丰介,可吹牛的內(nèi)容都是我干的橙垢。 我是一名探鬼主播敛纲,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼抡谐!你這毒婦竟也來(lái)了五垮?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤诞挨,失蹤者是張志新(化名)和其女友劉穎棍郎,沒(méi)想到半個(gè)月后辜荠,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體否过,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了沥阱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缎罢。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出策精,到底是詐尸還是另有隱情舰始,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布咽袜,位于F島的核電站丸卷,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏酬蹋。R本人自食惡果不足惜及老,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望范抓。 院中可真熱鬧,春花似錦食铐、人聲如沸匕垫。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)象泵。三九已至,卻和暖如春斟叼,著一層夾襖步出監(jiān)牢的瞬間偶惠,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工朗涩, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留忽孽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓谢床,卻偏偏與公主長(zhǎng)得像兄一,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子识腿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

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