docker應用入門

2021-08-20 13:14:57 字數 1288 閱讀 4366

一、docker產生的意義

1『解決環境配置難題:在軟體開發中最大的麻煩事之一,就是環境配置。為了跑我們的程式需要裝各種外掛程式,作業系統差異、不同的版本外掛程式都可能對程式產生影響。於是只能說:程式在我電腦上跑是正常的。

2』解決資源占用過多,啟動慢的問題: 環境移植 虛擬機器(virtual machine)也能實現,但虛擬機器執行的是完整的作業系統,占用資源多、冗餘步驟多、啟動慢。linux 容器(linux container,lxc)不是模擬乙個完整的作業系統,而是對程序進行隔離。

由於容器是程序級別的,相比虛擬機器有很多優勢。

啟動快、資源占用少、體積小。

二、什麼是docker映象、docker容器、docker倉庫?

docker映象: docker 把應用程式及其依賴,打包在 image 檔案裡面。

docker容器:類似於乙個輕量級的沙箱、docker利用容器來執行和隔離應用。

docker倉庫:存放映象的地方。最大的公開倉庫的官方的docker hub,常用pul命令來拉取/提交映象。

三,我們該如何簡單的使用docker。

1『 可以根據下官網的教程熟悉下docker的基本指令。

常用命令:

2』 把dockerfile可以理解成,在原映象的基礎上,執行了一些命令(可能安裝了一些新的程式)。原映象的**和新命令都寫在了dockerfile的檔案裡面,build一下就是乙個新的映象。

dockerfile分為四部分組成:基礎映象信、維護者資訊、映象操作指令和容器啟動時執行指令。例如

在dockerfile同級目錄下執行:docker build -t newimgname .

3『docker-compose.yml就是對container執行時的一些配置。比如埠對映、cpu、記憶體配置等。

在docker-compose.yml同級目錄下執行:docker-compose -f docker-compose.yml up -d

四、常見問題:

1、image裡面是什麼,應用開發人員改**後一定需要重啟容器?

有些pull到的映象名稱叫hello-world,redis等,它並不是乙個作業系統?那是因為電腦並不是在作業系統下才能執行。可以理解成映象是打包bootloader之後的內容,它可能只是:開機後,自動執行乙個redis,over。

對於這種沒有包含作業系統的image,該容器思維單一,做完一件事就完了。所以對於這種image(常見為python編寫),編寫**之後,就必須要重啟container。但若container裡面執行了作業系統(linux,windows等),改基於系統內的php**,就不需要重啟container.

Docker入門系列 Docker應用部署(九)

mysql部署 在docker容器中部署mysql,並通過外部mysql客戶端操作mysql server 部署mysql 1.搜尋mysql像 docker search mysql 2.拉取mysql映象 docker pull mysql 5.6 3.建立容器,設定埠對映 目錄對映 在 roo...

docker入門 docker應用場景和優勢

一 什麼是docker docker是乙個使用 go 語言開發的,並且開源的應用容器引擎,基於lxc linux container 核心虛擬化技術實現,提供一系列更強的功能,比如映象 dockerfile等 docker理念是將應用及依賴包打包到乙個可移植的容器中,可發布到任意linux發行版的d...

Docker入門與應用實戰5

docker入門與應用實戰5 dockerfile格式 dockerfile 從上而下 逐from centos latest 行run yum install gcc y 執copy run.sh usr bin 行expose 80 cmd run.sh dockerfile指令 指令 描述fr...