国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Docker入門(一)

zebrayoung / 2062人閱讀

摘要:作者麥冬白鯨魚是什么入門教程容器是與系統其他部分隔離開的一系列進程,運行這些進程所需的所有文件都由另一個鏡像提供,從開發到測試再到生產的整個過程中,容器都具有可移植性和一致性??焖偃萜鞯膯雍蛣摻o需啟動,可以實現秒級甚至毫秒級的啟動。

作者: 麥冬 白鯨魚
docker 是什么

Docker 入門教程

Docker容器是與系統其他部分隔離開的一系列進程,運行這些進程所需的所有文件都由另一個鏡像提供,從開發到測試再到生產的整個過程中,Linux 容器都具有可移植性和一致性。相對于依賴重復傳統測試環境的開發渠道,容器的運行速度要快得多,并且支持在多種主流云平臺(PaaS)和本地系統上部署。Docker容器很好地解決了“開發環境能正常跑,一上線就各種崩”的尷尬。

輕量:容器是進程級的資源隔離,而虛擬機是操作系統級的資源隔離,所以Docker容器相對于虛擬機來說可以節省更多的資源開銷,因為Docker容器不再需要GuestOS這一層操作系統了。

快速:容器的啟動和創建無需啟動GuestOS,可以實現秒級甚至毫秒級的啟動。

可移植性:Docker容器技術是將應用及所依賴的庫和運行時的環境技術改造包成容器鏡像,可以在不同的平臺運行。

自動化:容器生態中的容器編排工作(如:Kubernetes)可幫助我們實現容器的自動化管理。

docker三大核心



常見應用場景

對應用進行自動打包和部署

創建輕量、私有的PAAS環境

自動化測試和持續整合與部署

部署和擴展web應用、數據庫和后端服務

基礎部分 安裝

看Docker操作手冊
寫的很詳細

二進制安裝 一般安裝方法

這里說下二進制安裝,按照官網方式Install static binaries

安裝docker在Centos基本上就是yuminstall即可的一件事情(在ubuntu也是apt-get很容易安裝),但是在實際環境中,可能遇到企業內網之內無法連接,或者安全合規審查等問題,加之下載增加了安裝時間,因此二進制方式安裝變成了一種實際的需要。下面是官網的安裝方式

有些時候會在sudo docker &時候出現錯誤
可以執行以下下面命令再試。

rm -rf /var/lib/docker 
腳本傻瓜式安裝

這里提供寫好的腳本,可以把腳本和下載的二進制文件放在同一目錄下,然后運行sh install-docker.sh

項目 下載地址
二進制方式安裝docker腳本 http://osgp88fat.bkt.clouddn....
二進制的docker安裝文件 https://download.docker.com/l...
程序是否正常
sudo docker info

運行容器

docker run命令提供了Docker容器的創建到啟動的功能


如果要在命令行下創建一個我們能與之進行交互的容器,而不是一個運行后臺服務的容器,則-i -t這兩個參數是必不可少的基本參數。

apt-get update && apt-get install vim  //在容器中安裝vim
exit //  推出容器,返回到Ubuntu容器的宿主機命令行提示符中

查看當前系統中容器列表
sudo docker ps -a 


加上-a 會顯示正在運行的 和已經停止的所有容器

容器命名

一般docker會為創建的容器生成隨機名稱,生成指定名稱用--name

sudo docker run --name jxtreehouse -i -t ubuntu /bin/bash

附著到容器上

像上面那樣,docker容器重新啟動時候,會沿用docker run 命令的參數來運行,因此我們容器重新啟動后會運行一個交互式會話shell。
當然,我們也可以用docker attach命令 重新附著到該容器的會話上

 sudo docker attach jxtreehouse

創建守護式容器

除了交互式運行的容器,我們也可以創建長期運行的容器:守護式容器
特點:

沒有交互會話

非常適合運行應用程序和服務

所以,大多數時候我們都需要守護式運行我們的容器

sudo docker run --name jxbooks -d  ubuntu /bin/sh -c "while true;do echo hello jx;sleep 1; done"


從上面運行結果我們可以看出,docker run命令并沒有像上一個容器那樣將主機的控制臺附著到新的shell會話上,僅僅返回一個容器ID而已,我們還是在主機的命令中。

容器內部運行情況

### 查看日志

sudo docker jxbooks
sudo docker logs jxbooks  // 獲取守護式容器日志
sudo docker logs -f jxbooks // 跟蹤守護式容器的日志(-f 類似 tail -f)
sudo docker logs -ft jxbooks // 跟蹤守護式容器的最新日志 (加上時間戳)
查看容器內的進程
 sudo docker top jxbooks
在容器內部運行進程

在Docker3.1之后,我們可以通過docker exec命令在容器內部額外啟動新程序。
可以在容器內運行的進程有兩種:

后臺任務

交互式任務

后臺任務例子:

 sudo docker exec -d jxbooks touch /etc/new_config_file

在jxbooks容器中啟動一個如打開shell的交互任務:

 sudo docker exec -t -i jxbooks /bin/bash

和交互式容器一樣,這里-t -i 標志為我們執行的進程創建TTY并捕捉STDIN。

停止守護式容器
sudo docker stop jxbooks

jxbooks也可用容器的ID來替代(查看id 可用 docker ps -a

自動重啟容器
sudo docker run --restart=always --name jxbooks -d ubuntu /bin/sh -c "while true; do echo hello world; sleep1;done"

--restart=always 無論容器的退出代碼是什么,docker都會自動重啟容器
還可以設置成 on-failure (只有當容器退出代碼為非 0 時候 才會自動重啟)

--restart=on-failture:5 //重啟次數參數
深入容器
sudo docker inspect jxbooks
刪除容器
sudo docker rm  容器名或id //注意運行中的docker容器無法刪除,必須先docker stop 或者 docker kill 停止容器

刪除所有容器

docker rm `docker ps -a -q`
創建鏡像

查看這個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/



這時候我們項目的根目錄下就有了一個docker的鏡像壓縮文件

導入docker鏡像并開發

在合作開發時候,我們拿到一個項目打包好的docker鏡像(原開發環境為ubuntu,我們這里拿到鏡像后 還用ubuntu做演示,實際開發時候,你可能是在windows 或者centos中拿到這個項目鏡像來開發)
比如壓縮包名datascreen.tar
這里我用遠程服務器演示下:

我們在根目錄/data文件夾中建一個docker文件夾,進入文件夾,新建tmp文件夾 ,在docker同級目錄下新建 datascreen 文件夾 我們將把項目docker鏡像文件映射到這里

導入容器
sudo docker load < ${PATH}/datascreen.tar  //加載docker打包的鏡像 到本宿主機   
運行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/ 映射到的宿主機上的目錄
/tmp/ {image id} /bin/bash 鏡像中的目錄

啟動容器
sudo docker ps  //查看運行中的容器
sudo docker start f1737f42f13b  //f1737f42f13b 是容器id
sudo docker exec -it f1737f42f13b /bin/bash
運行data-screen
cd data-screen/
nohup ./auto-run.sh &


auto-run.sh腳本中的內容,主要是啟動mongod 和用node啟動入口文件index.js (這個項目是一個nodejs的后臺項目)

停止docker 容器

(!危險) 如果是運行在應用上的程序和服務的守護式容器 注意不要隨意停止

sudo docker ps
 sudo docker stop 

參考

Docker操作手冊
第一本docker書
[Docker — 從入門到實踐]()
Docker 入門教程
Docker 微服務教程
基于docker+gunicorn部署sanic項目
vue-cli3 項目從搭建優化到docker部署

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27010.html

相關文章

  • Docker入門)用hello world入門docker

    摘要:初識是什么是一個開源的應用容器引擎,基于語言并遵從協議開源。容器是完全使用沙箱機制,相互之間不會有任何接口更重要的是容器性能開銷極低。命令為,如下由此可知,我們新打包的鏡像的為。登錄賬號再輸入自己的賬號密碼即可。 初識Docker Docker是什么? ??Docker 是一個開源的應用容器引擎,基于?Go 語言并遵從Apache2.0協議開源。??Docker 可以讓開發者打包他們的...

    tolerious 評論0 收藏0
  • 這是docker 入門實踐

    摘要:前言其實接觸也有一段時間了,但是一直沒有做下總結,現在網上關于的介紹也有很多了,本著好記性不如爛筆頭的原則,還是自己再記錄一波吧。實現目標安裝探索基本概念及用法環境準備位,內核版本不低于安裝以下命令均需在權限下執行。 showImg(https://segmentfault.com/img/remote/1460000017894270?w=538&h=344); 前言 其實接觸 do...

    ashe 評論0 收藏0
  • Docker零基礎入門指南():Docker介紹

    摘要:原文地址零基礎入門指南一介紹簡介源代碼托管在上,公司開源的一個基于技術之上構建的容器引擎,基于語言并遵從協議開源。通過等實現內核虛擬化技術,并提供容器的資源隔離與安全保障等。 原文地址:Docker零基礎入門指南(一):Docker介紹 Docker簡介 Docker源代碼托管在 GitHub上,Docker 公司開源的一個基于LXC技術之上構建的Container容器引擎,基于Go...

    DevTTL 評論0 收藏0
  • Docker之旅——入門篇()

    摘要:常見問題點擊之后提示錯誤,我們點擊瀏覽選擇安裝目錄的下載鏡像很慢,參考提供的加速器文檔鏈接之旅使用搭建私服二其他參考非常詳細的學習筆記最佳實踐一命令詳解超全版本基于打造前端持續集成開發環境 Docker進行感性認知 Docker 最初的2小時(Docker從入門到入門).md 開啟Docker之旅 環境: win7, 64位 工具準備: 1. 官網地址: https://get....

    JinB 評論0 收藏0
  • Docker之旅——入門篇()

    摘要:常見問題點擊之后提示錯誤,我們點擊瀏覽選擇安裝目錄的下載鏡像很慢,參考提供的加速器文檔鏈接之旅使用搭建私服二其他參考非常詳細的學習筆記最佳實踐一命令詳解超全版本基于打造前端持續集成開發環境 Docker進行感性認知 Docker 最初的2小時(Docker從入門到入門).md 開啟Docker之旅 環境: win7, 64位 工具準備: 1. 官網地址: https://get....

    時飛 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<