『暴力學習 docker ,後附影片版』

lee_lgw發表於2021-09-09

圖片描述

docker-png.png

各位好,我是謝偉,是一名程式設計師。

程式設計師需要持續不斷的學習,這一點已經是成為共識.

我也在不斷的學習新的學習方式,不斷的更新自己的學習方式. 於是有了下文, 稱之為暴力學習方法.

其實這些也不是我自己原創的,我只是結合自己的學習方式和一些接觸的厲害的人之後總結出來的.

下面的方法,不適合精深某一領域,但是非常適合從不懂到懂操作的階段. 所以稱之為 暴力學習. 但往往就是這麼一次的入門, 就成了...

阻擋你入門的, 往往是那些原理.

注意: 上手是一切的開始, 是一切的可能性的開始

下面的這些方法有幾點需要說明:

  • 忽略絕大多數細節

  • 瞭解這門技術的最小知識集

  • 實踐, 實踐, 再實踐

  • 瞭解和精進原理

即:把對原理的吸收放到已經能操作這麼技術之後再進行, 這樣的好處是: 你知道你想了解什麼...

下面的演示例項即: 暴力學習 docker.

1. Docker

一句話說明: Docker 是一種容器技術, 允許開發者把程式打包進容器, 之後可以跨平臺使用.

在雲端計算 , 微服務領域有著廣泛的使用. 而且扮演著越來越重要的角色.

2. 暴力學習法 docker

  • 忽略細節

  • 最小知識集

  • 實踐

2.1 最小集知識

  • 使用場景

    • 彈性雲服務

    • 環境一致

    • 元件微服務架構

  • 基本概念

    • 映象:image: 分層 72

    • 容器:container

    • 倉庫:repository

    • Docker registry: 提供集中儲存、分發映象的服務

  • 服務和非服務

  • .dockerignore 忽略檔案

使用場景

  • 一個容器提供一個服務, 多個容器提供多個服務, 容器的停止執行即減少服務, 容器的啟動執行即增加服務, 完成彈性暈服務.

  • 開發者將程式放入容器中, 可以跨平臺使用. 執行 docker 命令即可使用. 環境一致性.

  • 容器啟動提供服務, 服務見相互互動, 完成微服務架構組織.

基本概念

image 映象: 即一些檔案, 可以理解為一個比較小的系統的檔案系統

container容器: 即一個程式, 即映象啟動, 提供相應服務, 開啟程式

registry 倉庫: 映象的儲存和分發

docker 的操作即在執行這三者.

安裝

根據自己電腦的作業系統選擇對應的版本, 其中不建議使用 Windows 系統. Docker 在Linux 系統下使用更佳.

加速器

之所以需要使用加速器是因為Docker 是國外的產品, 預設提供的映象倉庫地址是在國外, 所以拉取或者推送映象存在一個問題: 慢. 所以使用一些國內的加速器, 拉取映象更 快.

2.2 常用命令

  • image

  • container

  • registry

  • version

  • info

之前說過 docker 的操作基本上是在操作: 映象, 容器, 倉庫

命令分這麼幾個類別:

  • 系統

docker info
docker version
  • 映象

docker images
docker rmi
docker save
docker load
docker importdocker export
  • 容器

docker run
docker stop/start/create/stats
docker ps
docker kill
  • 倉庫

docker pull
docker push
  • 運維

docker execdocker attach
docker inspect

2.3 Dockerfile

docker 核心是製作映象,啟動容器,提供服務.

那嘸如何製作映象, 啟動容器, 提供服務呢? 核心又是編寫 Dockerfile 檔案.

執行 docker build 成為映象, docker run 成為容器. 啟動容器後即可以提供服務.

  • FROM: scratch

  • MAINTAINER

  • RUN

  • COPY:萬用字元

  • ADD:更高階的COPY:自動解壓縮

  • CMD:容器啟動後的命令執行

  • ENTRYPOINT:入口點,容器啟動後的命令執行, 方便新增引數

  • VOLUME 掛載資料卷

  • WORKDIR 指定工作目錄

  • EXPOSE 暴露埠

  • USER 指定當前使用者

  • HEALTHCHECK 容器健康檢查

熟悉shell 命令的, 可以很容易的理解這些命令的含義, 無非是出品docker 的這家公司制定這麼一套規則,我們學會這個規則,完成檔案的複製,或者執行些命令, 就可以構建映象.

實踐

核心是編寫Dockerfile , 會寫Dockerfile , 就會製作映象, 就會啟動容器. 就能入門docker.

3.1 設定加速器例項

訪問:

3.2 拉取映象, 啟動服務例項

docker run -d -p 9200:9200 elasticsearch

訪問: localhost:9200

docker pull ubuntu
docker run -it ubuntu sh#

即: 容器內具備ubuntu 的基礎功能

#!/usr/bin/env bashecho "hello world"
  • 編寫Dockerfile 檔案

docker build -t my_hello_world:0.0.1 .

啟動容器:

docker run my_hello_world

輸出: hello world

3.4 Dockerfile 執行提供 API 服務的映象

製作步驟: 使用 golang 編寫一個簡單的API 服務

FROM ubuntu
MAINTAINER XieWei
EXPOSE 8080RUN mkdir -p /usr/src/app
COPY . /usr/src/app
WORKDIR /usr/src/appCMD ls
ENTRYPOINT ["/bin/bash", "-c", "/usr/src/app/main"]

即: 以ubuntu 為基礎映象, 開放埠 8080, 建立目錄 /usr/src/app , 複製本地Dockerfile 所在目錄的所有檔案至該資料夾下.

切換至該資料夾, 入口執行 /usr/src/app/main

即: 啟動容器會執行: /usr/src/app/main

  • 製作映象

docker build -t my_api:0.0.1 .
  • 啟動容器, 對映埠 8080

docker run -d -p 8080:8080 my_api:0.0.1

訪問: localhost:8080/user/xiewei

輸出: hello xiewei

影片地址:

影片不太清晰,看百度網盤分享的影片吧.

連結: 密碼: 5rcr



作者:謝小路
連結:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1020/viewspace-2805915/,如需轉載,請註明出處,否則將追究法律責任。

相關文章