Docker總結(jié)不一樣的知識

1.docker port 可以查看容器的端口映射關(guān)系

格式:

docker port CONTAINER [PRIVATE_PORT[/PROTO]]?

例子:

[root@centos7 ~]# docker port nginx-c1

443/tcp -> 0.0.0.0:8443

53/udp -> 0.0.0.0:8053

80/tcp -> 0.0.0.0:8080

[root@centos7 ~]# docker port nginx-c1 53/udp

0.0.0.0:8053


2.指定端口映射

docker run -p 可以將容器的預(yù)定義的指定端口映射到宿主機的相應(yīng)端口

注意: 多個容器映射到宿主機的端口不能沖突厨埋,但容器內(nèi)使用的端口可以相同

方式1: 容器80端口映射宿主機本地隨機端口

docker run -p 80 --name nginx-test-port1 nginx?

方式2: 容器80端口映射到宿主機本地端口81

docker run -p 81:80 --name nginx-test-port2 nginx?

方式3: 宿主機本地IP:宿主機本地端口:容器端口

docker run -p 10.0.0.100:82:80 --name nginx-test-port3 docker.io/nginx

方式4: 宿主機本地IP:宿主機本地隨機端口:容器端口,默認從32768開始

docker run -p 10.0.0.100::80 --name nginx-test-port4 docker.io/nginx

方式5: 宿主機本機ip:宿主機本地端口:容器端口/協(xié)議捐顷,默認為tcp協(xié)議

docker run ?-p 10.0.0.100:83:80/udp --name nginx-test-port5 docker.io/nginx

方式6: 一次性映射多個端口+協(xié)議

docker run ?-p 8080:80/tcp -p 8443:443/tcp -p 53:53/udp --name nginx-test-port6 nginx

查看容器的日志

docker logs 可以查看容器中運行的進程在控制臺輸出的日志信息

格式

docker logs [OPTIONS] CONTAINER

范例: 查看容器日志

[root@ubuntu1804 ~]#? docker run alpine /bin/sh -c 'i=1;while true;do echo

hello$i;let i++;sleep 2;done'

Unable to find image 'alpine:latest' locally

latest: Pulling from library/alpine

188c0c94c7c5: Pull complete

Digest: sha256:c0e9560cda118f9ec63ddefb4a173a2b2a0347082d7dff7dc14272e7841a5b5a

Status: Downloaded newer image for alpine:latest

hello1

hello2

hello3

hello4

hello5

^C[root@ubuntu1804 ~]#

[root@ubuntu1804 ~]#docker run -d alpine /bin/sh -c 'i=1;while true;do echo

hello$i;let i++;sleep 2;done'

512622b006c05673630eb04f081f8475400b1cda786b0a8a5d1c1c2fd6dc56a7

[root@ubuntu1804 ~]#docker logs 5126

hello1

hello2

hello3

hello4

hello5

hello6

[root@ubuntu1804 ~]#docker logs --tail 3 5126

hello8

hello9

hello10

#顯示時間

[root@ubuntu1804 ~]#docker logs --tail 0 -t 5126

2020-02-25T13:30:07.321390731Z hello17

#持續(xù)跟蹤

[root@ubuntu1804 ~]#docker logs -f 5126

hello1

hello2

hello3

hello4

實戰(zhàn)案例: 基于CentOS 基礎(chǔ)鏡像手動制作編譯版本 nginx 鏡像

在CentOS 基礎(chǔ)鏡像的容器之上手動編譯安裝nginx荡陷,然后再將此容器提交為鏡像

下載鏡像并初始化系統(tǒng)

[root@ubuntu1804 ~]#docker pull centos:centos7.7.1908

[root@ubuntu1804 ~]#docker images

REPOSITORY ????TAG ????????IMAGE ID ?????CREATED ?????

SIZE

centos ??????centos7.7.1908 ??08d05d1d5859 ????2 months ago ??

204MB

[root@ubuntu1804 ~]#docker run -it centos:centos7.7.1908 /bin/bash

#生成yum源配置

[root@86a48908bb97 /]# yum -y install wget

[root@64944257fa88 /]# rm -rf /etc/yum.repos.d/*

[root@64944257fa88 /]# wget -P /etc/yum.repos.d/

http://mirrors.aliyun.com/repo/Centos-7.repo

http://mirrors.aliyun.com/repo/epel-7.repo

?編譯安裝 nginx

[root@64944257fa88 /]# useradd -r -s /sbin/nologin nginx

#安裝基礎(chǔ)包

[root@64944257fa88 /]# yum -y install gcc gcc-c++ automake pcre pcre-devel zlib

zlib-devel openssl openssl-devel

[root@64944257fa88 /]# cd /usr/local/src

[root@64944257fa88 src]# wget http://nginx.org/download/nginx-1.16.1.tar.gz

[root@64944257fa88 src]# tar xf nginx-1.16.1.tar.gz

[root@64944257fa88 src]# cd nginx-1.16.1

[root@64944257fa88 nginx-1.16.1]# ./configure --prefix=/apps/nginx

[root@64944257fa88 nginx-1.16.1]# make && make install

[root@64944257fa88 nginx-1.16.1]# rm -rf nginx*

[root@64944257fa88 nginx-1.16.1]# rm -rf /var/cache/yum/*

關(guān)閉 nginx 后臺運行

[root@64944257fa88 nginx-1.16.1]# cd /apps/nginx/ ?

[root@64944257fa88 nginx]# ls

conf html logs sbin

[root@64944257fa88 nginx]# vi conf/nginx.conf

user nginx;

daemon off;

[root@64944257fa88 nginx]# ln -s /apps/nginx/sbin/nginx /usr/sbin/

[root@64944257fa88 nginx]# ll /usr/sbin/nginx

lrwxrwxrwx 1 root root 22 Jan 28 05:29 /usr/sbin/nginx -> /apps/nginx/sbin/nginx

準備相關(guān)數(shù)據(jù)自定義web界面

[root@64944257fa88 nginx]# echo "Nginx Test Page in Docker" >

/apps/nginx/html/index.html

提交為鏡像

#不要退出容器,在另一個終端窗口執(zhí)行以下命令

[root@ubuntu1804 ~]#docker images

REPOSITORY ????TAG ????????IMAGE ID ?????CREATED ?????

SIZE

centos ??????centos7.7.1908 ??08d05d1d5859 ????2 months ago ??

204MB

[root@ubuntu1804 ~]#docker ps

CONTAINER ID ???IMAGE ?????????COMMAND ??????CREATED ???

??STATUS ??????PORTS ???????NAMES

64944257fa88 ???centos:centos7.7.1908 ?"/bin/bash" ????18 seconds ago

?Up 17 seconds ?????????????stupefied_albattani

[root@ubuntu1804 ~]#docker commit -m "nginx1.6.1" 64944257fa88 -c "CMD nginx"

centos7-nginx:1.6.1

sha256:d86d957bb00f35fe09ae38230e1e2d12916f4406e997146c68e34dae7526c079

[root@ubuntu1804 ~]#docker images

REPOSITORY ????TAG ????????IMAGE ID ?????CREATED ?????

SIZE

centos7-nginx ???1.6.1 ???????d86d957bb00f ????2 minutes ago? ?486MB

centos ??????centos7.7.1908 ??08d05d1d5859 ????2 months ago? ?204MB


從自己的鏡像啟動容器

[root@ubuntu1804 ~]#docker run -d -p 80:80 centos7-nginx:1.6.1 nginx

ae90b1abf374138a21f7ed104d14c88f1af23c0b2027c3fe099722fd7fbad3a4

[root@ubuntu1804 ~]#docker ps

CONTAINER ID ???IMAGE ????????COMMAND ??????CREATED ????

?STATUS ??????PORTS ???????NAMES

ae90b1abf374 ???centos7-nginx:1.6.1 ?"nginx" ??????About a minute ago

?Up About a minute ?0.0.0.0:80->80/tcp ?naughty_thompson

備注: 最后面的nginx是運行的命令迅涮,即鏡像里面要運行一個nginx命令废赞,所以前面軟鏈接

到/usr/sbin/nginx,目的為了讓系統(tǒng)不需要指定路徑就可以執(zhí)行此命令

訪問測試

[root@ubuntu1804 ~]#curl 127.0.0.1

Nginx Test Page in Docker

?查看Nginx訪問日志和進程

[root@ubuntu1804 ~]#docker exec -it ae90b1abf374 bash

[root@ae90b1abf374 /]# cat /apps/nginx/logs/access.log

172.17.0.1 - - [28/Jan/2020:05:40:51 +0000] "GET / HTTP/1.1" 200 26 "-"

"curl/7.58.0"

[root@ae90b1abf374 /]# ps aux

USER ???PID %CPU %MEM ?VSZ ?RSS TTY ??STAT START ?TIME COMMAND

root ?????1 ?0.0 ?0.2 ?20572 ?2468 ? ???Ss ?05:40 ?0:00 nginx: master

process nginx

nginx ????6 ?0.0 ?0.3 ?21024 ?3104 ? ???S ??05:40 ?0:00 nginx: worker

process

root ?????7 ?0.3 ?0.2 ?11840 ?2928 pts/0 ?Ss ?05:45 ?0:00 bash

root ????21 ?0.0 ?0.3 ?51764 ?3344 pts/0 ?R+ ?05:46 ?0:00 ps aux

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末逗柴,一起剝皮案震驚了整個濱河市蛹头,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌戏溺,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屠尊,死亡現(xiàn)場離奇詭異旷祸,居然都是意外死亡,警方通過查閱死者的電腦和手機讼昆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門托享,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人浸赫,你說我怎么就攤上這事闰围。” “怎么了既峡?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵羡榴,是天一觀的道長。 經(jīng)常有香客問我运敢,道長校仑,這世上最難降的妖魔是什么忠售? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮迄沫,結(jié)果婚禮上稻扬,老公的妹妹穿的比我還像新娘。我一直安慰自己羊瘩,他們只是感情好泰佳,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著尘吗,像睡著了一般逝她。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上摇予,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天汽绢,我揣著相機與錄音,去河邊找鬼侧戴。 笑死宁昭,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的酗宋。 我是一名探鬼主播积仗,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蜕猫!你這毒婦竟也來了寂曹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤回右,失蹤者是張志新(化名)和其女友劉穎隆圆,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體翔烁,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡渺氧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蹬屹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片侣背。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖慨默,靈堂內(nèi)的尸體忽然破棺而出贩耐,到底是詐尸還是另有隱情,我是刑警寧澤厦取,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布潮太,位于F島的核電站,受9級特大地震影響蒜胖,放射性物質(zhì)發(fā)生泄漏消别。R本人自食惡果不足惜抛蚤,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望寻狂。 院中可真熱鬧岁经,春花似錦、人聲如沸蛇券。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纠亚。三九已至塘慕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蒂胞,已是汗流浹背图呢。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留骗随,地道東北人蛤织。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像鸿染,于是被迫代替她去往敵國和親指蚜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

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