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

資訊專欄INFORMATION COLUMN

使用docker部署PostgreSQL數據庫

Loong_T / 1933人閱讀

摘要:解決了服務器應用快速部署的問題。解決方案是自己裝一個第二點,確保鏡像服務器跑起來。你需要將真機的端口和虛擬機端口進行綁定,這樣可以通過訪問鏡像服務器在真機上的端口,訪問到數據庫端口,進入鏡像之中。

關于Docker的基本原理

原理上, 深入淺出Docker 一文講的語言會更科學,我只撿不一定準確但直觀而符合表面理解的一些講一下。

Docker提供了基于操作系統級和應用級虛擬化的應用部署解決方案。它的出現讓在服務器上部署應用免去了操作系統,支持系統等一系列的搭建,而把它們簡化為鏡像,容器,實現快速部署。

Docker將應用所需要的底層系統支持,操作系統支持,數據庫支持,應用本身和應用的數據分離開來,可以從任意層級上在一個擁有docker技術的電腦上對應用進行部署。每一層被抽象成了鏡像(image),而鏡像跑在服務器上便成了容器(container),相當于虛擬機。跑起一個應用級別的容器,會自動獲取它所需要的向下級別的鏡像。這些都可以通過云端大量現成的資源和幾行腳本命令實現。

Docker解決了服務器應用快速部署的問題。僅需要一個dockerfile或是一兩行命令,便可以將一個應用部署到服務器上并立刻投入使用。存在的問題也有一些,比如數據層遷移的命令蹩腳,容器啟動后不能重新端口綁定,目前只能跑在linux上等。還有許多有待我這個剛入手沒多久的小白還要探索的問題。

安裝docker

在正題之前,你需要:

安裝docker

確定docker鏡像服務器已經跑在你的服務器上

兩點其實是一點,但是兩者各有側重。筆者在mac上安裝docker時,下載了官網提供的docker toolbox。安裝了docker服務器本身,快速啟動命令以及Virtualbox來管理虛擬機。在安裝Virtualbox的時候安裝程序掛了。至今不知為何。解決方案是自己裝一個

brew install Caskroom/cask/virtualbox

第二點,確保docker鏡像服務器跑起來。在mac下需要運行quickstart,你會注意到它其實就是啟動一個腳本,讓linux虛擬機的服務器可以通過虛擬網絡被mac訪問到。如果直接打開命令行,會提示

Cannot connect to the Docker daemon. Is the docker daemon running on this host?

在linux上,docker指令必須sudo。否則也會提示找不到。

在mac上或者windows上尤其注意一點。docker服務器跑在linux虛擬機上。所以后續牽扯到目錄掛載的時候最好可以直接進入虛擬機寫指令。

如何快速部署數據庫

在docker上快速部署Postgresql數據庫,其實可以直接參考https://hub.docker.com/_/postgres/,這里提供了docker-postgres的官方解決方案。
其實核心只有一句話。

docker run --name yourappname -e POSTGRES_PASSWORD=mysecretpassword -e POSTGRES_USER=xxx -d -p xxxx:5432 postgres

其中的-p 的意思是端口綁定。這是docker里很重要的概念。docker可以理解為虛擬機。你需要將真機的端口和虛擬機端口進行綁定,這樣可以通過訪問docker鏡像服務器在真機上的端口,訪問到psql數據庫端口5432,進入docker鏡像之中。如果不指定-p,外界是無法訪問docker內部,無法對數據庫增刪改查。

這時服務器會新建一個卷目錄用來存放真正的數據庫內容。換句話說,這個卷是只讀的,通過容器備份提交什么的根本無法保留數據庫數據,甚至是表的結構。這個時候就需要介紹一個docker的新概念:數據卷。類似于linux掛載的概念。

具體可以參考https://github.com/widuu/chinese_docker/blob/master/userguide/dockervolumes.md

這里只說怎么快速部署。

第一步:在任意機子上建立一個鏡像,指定數據卷位置,并將其掛載到虛擬機上

docker run --name yourappname -e POSTGRES_PASSWORD=xxx -e POSTGRES_USER=xxx
    -v ./data:/var/lib/postgresql/data/pgdata -d -p xxxx:5432 postgres

多的這一句

-v ./data:/var/lib/postgresql/data/pgdata

意思是:講本機當前目錄下新建一個data目錄,與虛擬機里的數據庫目錄對應起來。注意這里必須是linux下的目錄。如果在mac或者windows上操作務必注意。如果你把mac/windows目錄映射到了“虛擬機的虛擬機”里,會因為訪問權限不足而讓docker崩掉。

第二步:按照你指定的端口訪問數據庫,做數據初始化。包括建表和插入初始數據。

第三步:備份數據卷。也就是上面的./data目錄。

第四步,將這個數據卷放到你的服務器上

第五步和第一步一樣。但是此時,你的數據卷里面已經有之前保存的內容了。

讓我來通俗地闡釋一下這個過程。其實相當于你在家里電腦插個空U盤,放點歌在里面,然后帶到單位去就可以聽了。家里的電腦和單位的電腦都是WindowsXP的系統,都裝了什么音樂播放器,但是歌曲一定是放在優盤里,因為電腦是只讀的。

類似。docker也經常被設計成只讀的,作為應用程序的初始狀態。其實這么復制挺麻煩的,還需要新建一個數據卷。向上面那個例子里,“家里的電腦”其實沒用。教程里甚至提供了即時創建并刪除容器的命令只為保存一個數據卷和容器名稱的對應關系,日后掛載方便。

docker的最佳實踐

dockerfile最佳實踐

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

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

相關文章

  • docker-gitlab部署

    摘要:安裝這里以發行版為例,在中輸入一下命令安裝最新的注意如果你使用了阿里云最新推出的鏡像,那么可以省略本節的步驟。因為阿里云的這個鏡像已經自帶了版的,版本比較新,可以直接使用。 docker用來隔離應用還是很方便的,一來本身的操作較為簡單,二來資源占用也比虛擬機要小得多,三來也較為安全,因為像數據庫這樣的應用不會再全局暴露端口,同時應用間的通信通過加密和端口轉發,更加安全。 Gitlab...

    imtianx 評論0 收藏0
  • 使用docker部署PostgreSQL據庫

    摘要:解決了服務器應用快速部署的問題。解決方案是自己裝一個第二點,確保鏡像服務器跑起來。你需要將真機的端口和虛擬機端口進行綁定,這樣可以通過訪問鏡像服務器在真機上的端口,訪問到數據庫端口,進入鏡像之中。 關于Docker的基本原理 原理上, 深入淺出Docker 一文講的語言會更科學,我只撿不一定準確但直觀而符合表面理解的一些講一下。 Docker提供了基于操作系統級和應用級虛擬化的應用部署...

    singerye 評論0 收藏0
  • API 網關Kong-docker&安裝

    摘要:搭建的安裝部署方式有很多中,官方提供了如下幾種的安裝方式。還有一些社區提供的安裝方式注每種方式的具體如何安裝部署,請移駕到官網安裝部署下面我們來詳細介紹下使用來部署過程需要創建一個自定義網絡,以允許容器相互發現和通信。 1、Kong搭建 kong 的安裝部署方式有很多中,官方提供了如下幾種的安裝方式。showImg(https://segmentfault.com/img/bVbvv3...

    shiyang6017 評論0 收藏0
  • 基于 Docker 的 Kong 的環境搭建

    摘要:基于的的環境搭建本次操作都是基于進行操作的,使用的的版本是,使用的版本是。初始化數據庫使用官方鏡像提供的功能初始化數據庫。安裝安裝完成后在宿主機請求,能正常響應則表示部署成功了。配置連接新增一個連接至剛剛新建的,填,選擇。 基于 Docker 的 Kong 的環境搭建 本次操作都是基于 Docker 進行操作的,使用的 Kong 的版本是 1.2.0 ,使用的 PostgreSQL 版...

    GT 評論0 收藏0
  • 關于Docker Swarm,你可能需要了解更多實踐經驗

    摘要:雖然可以使用相同的方式部署應用到云端,使用外部負載均衡器,但動態添加或者減少負載均衡節點依舊是痛點。這對使用外部負載均衡器幫助巨大。 數人云今天帶來的本篇文章將分享Docker在應用程序生命周期每個階段中所扮演的角色,以及遷移到Swarm集群時需要考慮的問題。 利用Docker來開發 Docker讓工作更輕松。如需要一個部署安裝MySQL數據庫,或者安裝Ghost,又或者Redis數據...

    bitkylin 評論0 收藏0

發表評論

0條評論

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