這篇文章給大家分享的是有關(guān)Docker容器怎么用的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
清流網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,清流網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為清流成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的清流做網(wǎng)站的公司定做!
Docker 是一個(gè)開(kāi)源的應(yīng)用容器引擎,基于Go語(yǔ)言并遵從Apache2.0協(xié)議開(kāi)源。
Docker 可以讓開(kāi)發(fā)者打包他們的應(yīng)用以及依賴包到一個(gè)輕量級(jí)、可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。
容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口(類(lèi)似 iPhone 的 app),更重要的是容器性能開(kāi)銷(xiāo)極低。
Docker 要求 Ubuntu 系統(tǒng)的內(nèi)核版本高于 3.10 ,查看本頁(yè)面的前提條件來(lái)驗(yàn)證你的 Ubuntu 版本是否支持 Docker。
獲取安裝包:
root@ubuntu:~# wget -qO- https://get.docker.com/ | sh
安裝完成后有提示:
If you would like to use Docker as a non-root user, you should now consider adding your user to the "docker" group with something like: sudo usermod -aG docker runoob Remember that you will have to log out and back in for this to take effect!
啟動(dòng)docker服務(wù)
root@ubuntu:~# sudo service docker start
URLOS基于Docker運(yùn)行,安裝了URLOS,就等于安裝了Docker,我們可以使用URLOS官方安裝命令:
curl -LO www.urlos.com/iu && sh iu
或
curl -O https://www.urlos.com/install && chmod 544 install && ./install
Docker容器使用
Docker客戶端
Docker 客戶端非常簡(jiǎn)單 ,可以直接輸入 Docker 命令來(lái)查看到 Docker 客戶端的所有命令選項(xiàng)。
root@ubuntu:~# docker

可以通過(guò)命令docker command --help更深入的了解指定的 Docker 命令使用方法。 例如我們要查看docker stats指令的具體使用方法:
root@ubuntu:~# docker stats --help

啟動(dòng)容器(交互模式)
我們?nèi)绻褂冒姹緸?6.04的ubuntu系統(tǒng)鏡像來(lái)運(yùn)行容器時(shí),命令如下:
root@ubuntu:~# docker run -it ubuntu:16.04 sh
如果要使用版本為15.04的ubuntu系統(tǒng)鏡像,則命令如下:
root@ubuntu:~# docker run -it ubuntu:15.04 sh
各個(gè)參數(shù)解析:
docker: Docker 的二進(jìn)制執(zhí)行文件。
run:與前面的 docker 組合來(lái)運(yùn)行一個(gè)容器。
-it:其實(shí)是兩個(gè)參數(shù)組成, -i 和 -t,-i:允許你對(duì)容器內(nèi)的標(biāo)準(zhǔn)輸入 (STDIN) 進(jìn)行交互。-t:在新容器內(nèi)指定一個(gè)偽終端或終端。
ubuntu:15.04:指定要運(yùn)行的鏡像,Docker首先從本地主機(jī)上查找鏡像是否存在,如果不存在,Docker 就會(huì)從鏡像倉(cāng)庫(kù) Docker Hub 下載公共鏡像。
sh:執(zhí)行命令。
將上面的命令稍作修改,在結(jié)尾處加上一句命令,執(zhí)行后:
root@ubuntu:~# docker run -it ubuntu:16.04 sh -c "while true; do echo hello urlos; sleep 1; done" hello urlos hello urlos hello urlos hello urlos hello urlos hello urlos ^Croot@ubuntu:~#
我們可以看到終端上不斷輸出 hello urlos ,這時(shí)按鍵盤(pán)Ctrl+c來(lái)終止輸出。
啟動(dòng)容器(后臺(tái)模式)
我們將上面的命令再稍作修改,把 -it 替換為 -d 看看結(jié)果:
root@ubuntu:~# docker run -d ubuntu:16.04 sh -c "while true; do echo hello urlos; sleep 1; done" 0cf141fd0745fb4dc104bec1a3238a1bd8dad7aa72926dea0a39ddc7ba54fe32
在輸出中,我們沒(méi)有看到期望的"hello world",而是一串長(zhǎng)字符 0cf141fd0745fb4dc104bec1a3238a1bd8dad7aa72926dea0a39ddc7ba54fe32
這個(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)查看:
root@ubuntu:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0cf141fd0745 ubuntu:16.04 "sh -c 'while true; …" 2 minutes ago Up 2 minutes hopeful_matsumoto
然后使用 docker logs [ID或者名字]命令,查看容器內(nèi)的標(biāo)準(zhǔn)輸出:
root@ubuntu:~# docker logs hopeful_matsumoto hello urlos hello urlos hello urlos hello urlos hello urlos hello urlos hello urlos hello urlos
我們可以看到,在容器內(nèi)部已經(jīng)輸出了非常多的hello urlos,這說(shuō)明容器處于后臺(tái)運(yùn)行模式。
運(yùn)行一個(gè)WEB應(yīng)用容器
現(xiàn)在我們將在docker容器中運(yùn)行一個(gè) nginx 應(yīng)用來(lái)運(yùn)行一個(gè)web應(yīng)用。
首先從Docker Hub公共鏡像源中拉取鏡像:
root@ubuntu:~# docker pull nginx
然后運(yùn)行這個(gè)鏡像:
root@ubuntu:~# docker run -d -p 8080:80 nginx
參數(shù)說(shuō)明:
-d:讓容器在后臺(tái)運(yùn)行。
-p:讓宿主機(jī)的8080端口映射給容器內(nèi)部的80端口。
查看WEB應(yīng)用容器
使用 docker ps 來(lái)查看我們正在運(yùn)行的容器:
root@ubuntu:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b394756b6c5d nginx "nginx -g 'daemon of…" 3 seconds ago Up 2 seconds 0.0.0.0:8080->80/tcp elastic_babbage
我們看到端口信息 0.0.0.0:8080->80/tcp,意思是宿主機(jī)的8080端口映射給容器內(nèi)部的80端口。
這時(shí)我們可以通過(guò)瀏覽器訪問(wèn)WEB應(yīng)用: 
查看端口的快捷方法
通過(guò)docker ps命令可以查看到容器的端口映射,docker還提供了另一個(gè)快捷方式 docker port,使用 docker port 可以查看指定 (ID 或者名字)容器的某個(gè)確定端口映射到宿主機(jī)的端口號(hào)。
上面我們創(chuàng)建的 web 應(yīng)用容器 ID 為 b394756b6c5d容器名為 elastic_babbage。
我可以使用 docker port b394756b6c5d或 docker port elastic_babbage來(lái)查看容器端口的映射情況。
root@ubuntu:~# docker port b394756b6c5d 80/tcp -> 0.0.0.0:8080 root@ubuntu:~# docker port affectionate_montalcini 80/tcp -> 0.0.0.0:8080
查看 WEB 應(yīng)用程序日志
使用docker logs [ID或者名字]可以查看容器內(nèi)部的標(biāo)準(zhǔn)輸出。
root@ubuntu:~# docker logs b394756b6c5d 192.168.43.131 - - [04/Jun/2019:06:28:42 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0" "-" 2019/06/05 06:28:42 [error] 6#6: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.43.131, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.43.122:8080" 192.168.43.131 - - [04/Jun/2019:06:28:42 +0000] "GET /favicon.ico HTTP/1.1" 404 153 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0" "-"
查看WEB應(yīng)用程序容器的進(jìn)程
我們還可以使用 docker top 來(lái)查看容器內(nèi)部運(yùn)行的進(jìn)程
root@ubuntu:~# docker top b394756b6c5d UID PID PPID C STIME TTY TIME CMD root 2069 2050 0 23:24 ? 00:00:00 nginx: master process nginx -g daemon off; systemd+ 2100 2069 0 23:24 ? 00:00:00 nginx: worker process
停止 WEB 應(yīng)用容器
使用 docker stop [ID或者名字] 命令停止容器
root@ubuntu:~# docker stop b394756b6c5d b394756b6c5d
啟動(dòng) WEB 應(yīng)用容器
使用 docker start [ID或者名字] 命令啟動(dòng)已經(jīng)停止的容器
root@ubuntu:~# docker start b394756b6c5d b394756b6c5d
重新啟動(dòng)WEB應(yīng)用容器
我們能還可以使用 docker restart [ID或者名字] 命令重新啟動(dòng)正在運(yùn)行的容器
root@ubuntu:~# docker restart b394756b6c5d b394756b6c5d
docker ps -l 查詢最后一次創(chuàng)建的容器:
root@ubuntu:~# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b394756b6c5d nginx "nginx -g 'daemon of…" 12 minutes ago Up 12 minutes 0.0.0.0:8080->80/tcp elastic_babbage
刪除WEB應(yīng)用容器
我們可以使用 docker rm [ID或者名字] 命令來(lái)刪除不需要的容器 注意:刪除容器時(shí),容器必須是停止?fàn)顟B(tài),否則會(huì)報(bào)如下錯(cuò)誤:
root@ubuntu:~# docker rm b394756b6c5d Error response from daemon: You cannot remove a running container b394756b6c5d95f1d43f11393c169cc73de40938d8f09db81077c8bce6e5881a. Stop the container before attempting removal or force remove
如果要?jiǎng)h除正在運(yùn)行的容器,這時(shí)我們只需要加入 -f 參數(shù)即可:
root@ubuntu:~# docker rm -f b394756b6c5d b394756b6c5d
感謝各位的閱讀!關(guān)于“Docker容器怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
本文名稱:Docker容器怎么用
轉(zhuǎn)載注明:http://chinadenli.net/article46/jigphg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷(xiāo)推廣、電子商務(wù)、外貿(mào)建站、企業(yè)網(wǎng)站制作、網(wǎng)站內(nèi)鏈、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)