摘要:作者麥冬白鯨魚是什么入門教程容器是與系統(tǒng)其他部分隔離開的一系列進(jìn)程,運(yùn)行這些進(jìn)程所需的所有文件都由另一個(gè)鏡像提供,從開發(fā)到測(cè)試再到生產(chǎn)的整個(gè)過(guò)程中,容器都具有可移植性和一致性??焖偃萜鞯膯?dòng)和創(chuàng)建無(wú)需啟動(dòng),可以實(shí)現(xiàn)秒級(jí)甚至毫秒級(jí)的啟動(dòng)。
作者: 麥冬 白鯨魚docker 是什么
Docker 入門教程
Docker容器是與系統(tǒng)其他部分隔離開的一系列進(jìn)程,運(yùn)行這些進(jìn)程所需的所有文件都由另一個(gè)鏡像提供,從開發(fā)到測(cè)試再到生產(chǎn)的整個(gè)過(guò)程中,Linux 容器都具有可移植性和一致性。相對(duì)于依賴重復(fù)傳統(tǒng)測(cè)試環(huán)境的開發(fā)渠道,容器的運(yùn)行速度要快得多,并且支持在多種主流云平臺(tái)(PaaS)和本地系統(tǒng)上部署。Docker容器很好地解決了“開發(fā)環(huán)境能正常跑,一上線就各種崩”的尷尬。
輕量:容器是進(jìn)程級(jí)的資源隔離,而虛擬機(jī)是操作系統(tǒng)級(jí)的資源隔離,所以Docker容器相對(duì)于虛擬機(jī)來(lái)說(shuō)可以節(jié)省更多的資源開銷,因?yàn)镈ocker容器不再需要GuestOS這一層操作系統(tǒng)了。
快速:容器的啟動(dòng)和創(chuàng)建無(wú)需啟動(dòng)GuestOS,可以實(shí)現(xiàn)秒級(jí)甚至毫秒級(jí)的啟動(dòng)。
可移植性:Docker容器技術(shù)是將應(yīng)用及所依賴的庫(kù)和運(yùn)行時(shí)的環(huán)境技術(shù)改造包成容器鏡像,可以在不同的平臺(tái)運(yùn)行。
自動(dòng)化:容器生態(tài)中的容器編排工作(如:Kubernetes)可幫助我們實(shí)現(xiàn)容器的自動(dòng)化管理。
docker三大核心
》
對(duì)應(yīng)用進(jìn)行自動(dòng)打包和部署
創(chuàng)建輕量、私有的PAAS環(huán)境
自動(dòng)化測(cè)試和持續(xù)整合與部署
部署和擴(kuò)展web應(yīng)用、數(shù)據(jù)庫(kù)和后端服務(wù)
基礎(chǔ)部分 安裝看Docker操作手冊(cè)
寫的很詳細(xì)
這里說(shuō)下二進(jìn)制安裝,按照官網(wǎng)方式Install static binaries
安裝docker在Centos基本上就是yuminstall即可的一件事情(在ubuntu也是apt-get很容易安裝),但是在實(shí)際環(huán)境中,可能遇到企業(yè)內(nèi)網(wǎng)之內(nèi)無(wú)法連接,或者安全合規(guī)審查等問(wèn)題,加之下載增加了安裝時(shí)間,因此二進(jìn)制方式安裝變成了一種實(shí)際的需要。下面是官網(wǎng)的安裝方式
有些時(shí)候會(huì)在sudo docker &時(shí)候出現(xiàn)錯(cuò)誤
可以執(zhí)行以下下面命令再試。
rm -rf /var/lib/docker腳本傻瓜式安裝
這里提供寫好的腳本,可以把腳本和下載的二進(jìn)制文件放在同一目錄下,然后運(yùn)行sh install-docker.sh
項(xiàng)目 | 下載地址 |
---|---|
二進(jìn)制方式安裝docker腳本 | http://osgp88fat.bkt.clouddn.... |
二進(jìn)制的docker安裝文件 | https://download.docker.com/l... |
sudo docker info運(yùn)行容器
docker run命令提供了Docker容器的創(chuàng)建到啟動(dòng)的功能
如果要在命令行下創(chuàng)建一個(gè)我們能與之進(jìn)行交互的容器,而不是一個(gè)運(yùn)行后臺(tái)服務(wù)的容器,則-i -t這兩個(gè)參數(shù)是必不可少的基本參數(shù)。
apt-get update && apt-get install vim //在容器中安裝vim
exit // 推出容器,返回到Ubuntu容器的宿主機(jī)命令行提示符中查看當(dāng)前系統(tǒng)中容器列表
sudo docker ps -a
加上-a 會(huì)顯示正在運(yùn)行的 和已經(jīng)停止的所有容器
一般docker會(huì)為創(chuàng)建的容器生成隨機(jī)名稱,生成指定名稱用--name
sudo docker run --name jxtreehouse -i -t ubuntu /bin/bash附著到容器上
像上面那樣,docker容器重新啟動(dòng)時(shí)候,會(huì)沿用docker run 命令的參數(shù)來(lái)運(yùn)行,因此我們?nèi)萜髦匦聠?dòng)后會(huì)運(yùn)行一個(gè)交互式會(huì)話shell。
當(dāng)然,我們也可以用docker attach命令 重新附著到該容器的會(huì)話上
sudo docker attach jxtreehouse創(chuàng)建守護(hù)式容器
除了交互式運(yùn)行的容器,我們也可以創(chuàng)建長(zhǎng)期運(yùn)行的容器:守護(hù)式容器
特點(diǎn):
沒(méi)有交互會(huì)話
非常適合運(yùn)行應(yīng)用程序和服務(wù)
所以,大多數(shù)時(shí)候我們都需要守護(hù)式運(yùn)行我們的容器
sudo docker run --name jxbooks -d ubuntu /bin/sh -c "while true;do echo hello jx;sleep 1; done"
從上面運(yùn)行結(jié)果我們可以看出,docker run命令并沒(méi)有像上一個(gè)容器那樣將主機(jī)的控制臺(tái)附著到新的shell會(huì)話上,僅僅返回一個(gè)容器ID而已,我們還是在主機(jī)的命令中。
### 查看日志
sudo docker jxbooks sudo docker logs jxbooks // 獲取守護(hù)式容器日志 sudo docker logs -f jxbooks // 跟蹤守護(hù)式容器的日志(-f 類似 tail -f) sudo docker logs -ft jxbooks // 跟蹤守護(hù)式容器的最新日志 (加上時(shí)間戳)查看容器內(nèi)的進(jìn)程
sudo docker top jxbooks在容器內(nèi)部運(yùn)行進(jìn)程
在Docker3.1之后,我們可以通過(guò)docker exec命令在容器內(nèi)部額外啟動(dòng)新程序。
可以在容器內(nèi)運(yùn)行的進(jìn)程有兩種:
后臺(tái)任務(wù)
交互式任務(wù)
后臺(tái)任務(wù)例子:
sudo docker exec -d jxbooks touch /etc/new_config_file
在jxbooks容器中啟動(dòng)一個(gè)如打開shell的交互任務(wù):
sudo docker exec -t -i jxbooks /bin/bash
和交互式容器一樣,這里-t -i 標(biāo)志為我們執(zhí)行的進(jìn)程創(chuàng)建TTY并捕捉STDIN。
停止守護(hù)式容器sudo docker stop jxbooks
jxbooks也可用容器的ID來(lái)替代(查看id 可用 docker ps -a)
自動(dòng)重啟容器sudo docker run --restart=always --name jxbooks -d ubuntu /bin/sh -c "while true; do echo hello world; sleep1;done"
--restart=always 無(wú)論容器的退出代碼是什么,docker都會(huì)自動(dòng)重啟容器
還可以設(shè)置成 on-failure (只有當(dāng)容器退出代碼為非 0 時(shí)候 才會(huì)自動(dòng)重啟)
--restart=on-failture:5 //重啟次數(shù)參數(shù)深入容器
sudo docker inspect jxbooks刪除容器
sudo docker rm 容器名或id //注意運(yùn)行中的docker容器無(wú)法刪除,必須先docker stop 或者 docker kill 停止容器
刪除所有容器
docker rm `docker ps -a -q`創(chuàng)建鏡像
查看這個(gè)docker 入門
.gitignore
.git node_modules npm-debug.log
Dockerfile
FROM node:8.4 COPY . /app WORKDIR /app RUN ["npm", "install"] EXPOSE 7001/tcp
zk@zk-TM1604:~/data-screen$ docker image build -t data-screen:0.0.1 . docker image ls zk@zk-TM1604:~/data-screen$ docker save data-screen:0.0.1 | gzip > data-screen.tar.gz zk@zk-TM1604:~/data-screen$ scp -r data-screen.tar.gz root@118.24.153.55:/root/
這時(shí)候我們項(xiàng)目的根目錄下就有了一個(gè)docker的鏡像壓縮文件
在合作開發(fā)時(shí)候,我們拿到一個(gè)項(xiàng)目打包好的docker鏡像(原開發(fā)環(huán)境為ubuntu,我們這里拿到鏡像后 還用ubuntu做演示,實(shí)際開發(fā)時(shí)候,你可能是在windows 或者centos中拿到這個(gè)項(xiàng)目鏡像來(lái)開發(fā))
比如壓縮包名datascreen.tar
這里我用遠(yuǎn)程服務(wù)器演示下:
我們?cè)诟夸?b>/data文件夾中建一個(gè)docker文件夾,進(jìn)入文件夾,新建tmp文件夾 ,在docker同級(jí)目錄下新建 datascreen 文件夾 我們將把項(xiàng)目docker鏡像文件映射到這里
導(dǎo)入容器sudo docker load < ${PATH}/datascreen.tar //加載docker打包的鏡像 到本宿主機(jī)運(yùn)行Docker
sudo docker images //獲取image ID sudo docker run -d -it -p 7001:7001 -v /data/docker/tmp/:/tmp/ {image id} /bin/bash
/data/docker/tmp/ 映射到的宿主機(jī)上的目錄
/tmp/ {image id} /bin/bash 鏡像中的目錄
sudo docker ps //查看運(yùn)行中的容器 sudo docker start f1737f42f13b //f1737f42f13b 是容器id sudo docker exec -it f1737f42f13b /bin/bash運(yùn)行data-screen
cd data-screen/ nohup ./auto-run.sh &
auto-run.sh腳本中的內(nèi)容,主要是啟動(dòng)mongod 和用node啟動(dòng)入口文件index.js (這個(gè)項(xiàng)目是一個(gè)nodejs的后臺(tái)項(xiàng)目)
(!危險(xiǎn)) 如果是運(yùn)行在應(yīng)用上的程序和服務(wù)的守護(hù)式容器 注意不要隨意停止
sudo docker ps
sudo docker stop參考
Docker操作手冊(cè)
第一本docker書
[Docker — 從入門到實(shí)踐]()
Docker 入門教程
Docker 微服務(wù)教程
基于docker+gunicorn部署sanic項(xiàng)目
vue-cli3 項(xiàng)目從搭建優(yōu)化到docker部署
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/27010.html
摘要:初識(shí)是什么是一個(gè)開源的應(yīng)用容器引擎,基于語(yǔ)言并遵從協(xié)議開源。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口更重要的是容器性能開銷極低。命令為,如下由此可知,我們新打包的鏡像的為。登錄賬號(hào)再輸入自己的賬號(hào)密碼即可。 初識(shí)Docker Docker是什么? ??Docker 是一個(gè)開源的應(yīng)用容器引擎,基于?Go 語(yǔ)言并遵從Apache2.0協(xié)議開源。??Docker 可以讓開發(fā)者打包他們的...
摘要:前言其實(shí)接觸也有一段時(shí)間了,但是一直沒(méi)有做下總結(jié),現(xiàn)在網(wǎng)上關(guān)于的介紹也有很多了,本著好記性不如爛筆頭的原則,還是自己再記錄一波吧。實(shí)現(xiàn)目標(biāo)安裝探索基本概念及用法環(huán)境準(zhǔn)備位,內(nèi)核版本不低于安裝以下命令均需在權(quán)限下執(zhí)行。 showImg(https://segmentfault.com/img/remote/1460000017894270?w=538&h=344); 前言 其實(shí)接觸 do...
摘要:原文地址零基礎(chǔ)入門指南一介紹簡(jiǎn)介源代碼托管在上,公司開源的一個(gè)基于技術(shù)之上構(gòu)建的容器引擎,基于語(yǔ)言并遵從協(xié)議開源。通過(guò)等實(shí)現(xiàn)內(nèi)核虛擬化技術(shù),并提供容器的資源隔離與安全保障等。 原文地址:Docker零基礎(chǔ)入門指南(一):Docker介紹 Docker簡(jiǎn)介 Docker源代碼托管在 GitHub上,Docker 公司開源的一個(gè)基于LXC技術(shù)之上構(gòu)建的Container容器引擎,基于Go...
摘要:常見問(wèn)題點(diǎn)擊之后提示錯(cuò)誤,我們點(diǎn)擊瀏覽選擇安裝目錄的下載鏡像很慢,參考提供的加速器文檔鏈接之旅使用搭建私服二其他參考非常詳細(xì)的學(xué)習(xí)筆記最佳實(shí)踐一命令詳解超全版本基于打造前端持續(xù)集成開發(fā)環(huán)境 Docker進(jìn)行感性認(rèn)知 Docker 最初的2小時(shí)(Docker從入門到入門).md 開啟Docker之旅 環(huán)境: win7, 64位 工具準(zhǔn)備: 1. 官網(wǎng)地址: https://get....
摘要:常見問(wèn)題點(diǎn)擊之后提示錯(cuò)誤,我們點(diǎn)擊瀏覽選擇安裝目錄的下載鏡像很慢,參考提供的加速器文檔鏈接之旅使用搭建私服二其他參考非常詳細(xì)的學(xué)習(xí)筆記最佳實(shí)踐一命令詳解超全版本基于打造前端持續(xù)集成開發(fā)環(huán)境 Docker進(jìn)行感性認(rèn)知 Docker 最初的2小時(shí)(Docker從入門到入門).md 開啟Docker之旅 環(huán)境: win7, 64位 工具準(zhǔn)備: 1. 官網(wǎng)地址: https://get....
閱讀 5018·2021-11-25 09:43
閱讀 1243·2021-11-24 09:38
閱讀 1986·2021-09-30 09:54
閱讀 2880·2021-09-23 11:21
閱讀 2426·2021-09-10 10:51
閱讀 2436·2021-09-03 10:45
閱讀 1220·2019-08-30 15:52
閱讀 1818·2019-08-30 14:13