docker入門教程
DOCKER入門
一、 簡介
引入Docker是為了解決什麼問題?
現在我們使用的微服務,確實有很多的優點,但是也暴露出一個很大的問題,一個就是開發人員必須瞭解整體服務的依賴關係,才能有效的開發,也就是說必須對整個架構很熟悉,其次就是運維,服務太多,太散,部署會是一件頭疼的事,運維的工作量會會無形中增加了很多。Docker的出現解決了這些問題,可以通過compose來配置,開發人員一眼就能看出服務之間相互的依賴關係,運維也能利用docker更好的實現自動化(官方的說法是可以實現統一的方式來下載、啟動、擴充套件、刪除和遷移,這樣方便了應用程式的部署和運維)。
虛擬機器和容器的區別?
各容器系統共享主機系統的核心,而不像虛擬機器那樣同樣對核心或者虛擬硬體進行打包。(易用性—一次構建隨處執行、輕量化所以高速—秒級VS分鐘級、模組化—可以將一個應用拆分到多個容器中)
二、安裝步驟(windows版)
注:Linux、mac以及不支援hyper-v的安裝請參照官網https://docs.docker.com
win10 Build 10586版本之後因為支援虛擬化,所以可以直接整合docker。否則需要通過docker toolbox來安裝(toolbox中整合了virtual box)。
-
開啟“啟動和關閉windows功能”,勾上“Hyper-V”,然後重啟
- 確認BIOS中的支援虛擬化是否已經開啟,每臺機器不同,可自行“百度”
- 安裝InstallDocker.msi, 下載地址:https://download.docker.com/win/stable/InstallDocker.msi
- 確認是否安裝成功
使用管理員賬戶開啟cmd,輸入命令:
docker --version
docker-compose --version
docker-machine --version
三、配置
1、registry配置
因為Dockerhub在國外,就算翻牆也很慢,所以使用國內的registry,我使用的是阿里雲的,也可以使用daocloud(註冊一下就可以了),
2、磁碟共享
右擊”setting”來配置
四、映象
幾個主要操作:
以ubuntu映象為例(下同)
- 獲取:docker pull ubuntu:version
- 檢視:docker images
- 刪除:docker rmi Ubuntu
- 上傳:docker push [user]/ubuntu:[version]
- 匯入匯出:docker load和docker save
五、容器
建立(或啟動)
可以直接docker create -it ubuntu
(-i 保持輸入流開著,-t使用docker自帶的偽終端進入)然後通過docker start
來啟動(可以通過docker ps –a 檢視所有的容器)
建立並啟動docker run -it ubuntu /bin/bash
(/bin/bash在連線後立即執行)
後臺啟動docker run -d ubuntu /bin/bash
進入
docker exec –it [container] /bin/bash
停止
docker stop [container]
刪除
docker rm [container id]
儲存
docker commit [container id] [image:version]
掛載、埠對映
docker run -d -p 8080:80 --name=nginx1 -v e:/docker/data/log:/var/log/nginx nginx
匯入匯出(not important)
docker export [container id] > [name].tar cat [name].tar | docker import – [container]
六、倉庫
搭建一個私有倉庫
下載並執行一個倉庫容器
docker run -d -p 5000:5000 -v e:/docker/registry:/tmp/registry registry
給需要放到私倉的映象打上標籤
docker tag mysql:5.6.36_mm 127.0.0.1:5000/mysql
(Tag名稱須按照[server:port]/xx這種格式命名)-
推送該映象到私倉
docker push 127.0.0.1:5000/mysql
此時可能會報錯,因為使用了不安全的倉庫,需要在daemo-an設定,配置insecure-registries
4、驗證是否可用docker pull 127.0.0.1:5000/mysql
(注意要關閉防火牆,不然訪問不到這個埠)
七、進階
如何生成映象呢?dockerfile
Dockerfile主要分為四個部分:基礎映象、維護者、操作命令、容器啟動執行命令
幾個指令
- Form 基於映象資訊
- MAINTAINER 維護者資訊
- RUN [executable,param1,param2]
- CMD 容器啟動時執行的命令
其他
- EXPOST 埠暴露
- WORKDIR 工作目錄(所有操作命令都會在這個地址下進行)
- ADD 新增本地檔案
*ENV配置環境變數
建立docker build -t ubuntu:base .
docker-compose
windows版自帶了Compose,不需要再安裝。(linux需要)Compose是用於定義和執行復雜Docker應用的工具。你可以在一個檔案中定義一個多容器的應用,然後使用一條命令來啟動你的應用,然後所有相關的操作都會被自動完成。
使用Compose只需要簡單的三個步驟:
首先,使用Dockerfile來定義你的應用環境
第二步,用一個compose.yml來定義你的應用,他們可以在下個互隔離的容器中組成你的應用。
第三步,執行docker-compose up來啟動你的應用,它會根據compose.yaml的設定來pull/run這倆個容器。
YAML檔案主要配置項
image : 使用的映象,services:所有的服務
build : 通過dockerfilel來build, ,而非通過image選項來pull
ports :暴露的埠, environment:當前服務引數配置
depends_on:依賴的服務,volumes: 掛載的資料卷
相關文章
- Docker 入門教程Docker
- Docker(一):Docker入門教程Docker
- Docker Swarm入門教程DockerSwarm
- Docker 萬字入門教程Docker
- 全面的Docker快速入門教程Docker
- 30 分鐘快速入門 Docker 教程Docker
- Docker入門教程(六)另外的15個Docker命令Docker
- Docker入門教程:15個Docker基本命令及用法Docker
- 【URLOS開發入門】docker官方系統映象——Alpine入門教程Docker
- docker入門Docker
- Docker 實戰教程之從入門到提高 (五)Docker
- Docker 實戰教程之從入門到提高 (六)Docker
- Docker 實戰教程之從入門到提高 (七)Docker
- Docker 實戰教程之從入門到提高(二)Docker
- Docker 實戰教程之從入門到提高(三)Docker
- Docker 實戰教程之從入門到提高 (四)Docker
- Docker 實戰教程之從入門到提高 (八)Docker
- Docker 實戰教程之從入門到提高(一)Docker
- docker 入門上篇Docker
- Docker 入門:容器Docker
- Docker 入門:DockerfileDocker
- Docker 入門指南Docker
- Docker使用入門Docker
- Docker快速入門Docker
- docker入門1Docker
- Docker 入門操作Docker
- Docker常見面試題及答案!Linux入門教程Docker面試題Linux
- 小學生也能讀懂的Docker入門教程Docker
- Docker 入門系列一:docker 命令Docker
- Docker 入門:什麼是 Docker ?Docker
- docker入門1:使用docker映象Docker
- Docker入門知識Docker
- Docker入門(1):概述Docker
- docker 怎麼入門?Docker
- kafka(docker) 入門分享KafkaDocker
- Docker入門實踐Docker
- Docker入門手冊Docker
- Docker 入門筆記Docker筆記