先到Z://nisra 下載檔案

接下來安裝Oracal VM,裝完之後執行ova檔案

登入虛擬機

帳號:nisra

密碼:nisra

Docker

by  Halloworld

ABOUT TODAY

1. Docker 介紹&由來

2. 實作docker

3. Docker file

Docker由來

Docker由來

Docker由來

Docker由來

還沒有docker的年代

為甚麼要分來分去,

放在一起不好嗎 ?

  1. 擁有獨立系統,把系統的硬體資源隔離
  2. 有效管理 Host 的資源 ,並分配於各 VM
  3. 單一個VM壞掉不會影響到其他服務

有了docker之後

Docker優點

  1. VM 的映像檔通常落在數 GB 至數十 GB
  2. 容器的移轉性強
  3. docker啟動速度比 VM hen
  4. Docker 容器引擎,容器的開發、管理與運行非常簡易

Docker 介紹

  1. Google 公司推出的 Go 語言
  2. 實作輕量級的作業系統虛擬化解決方案
  3. 讓使用者不需要去關心容器的管理

Docker images 映像檔

  • 只能做讀取的模板,拿來建立docker container,有點類似光碟的概念
  • 裡面可以放完整系統,或者是各種應用
  • Docker images可以自行建立,也能使用網路平台上的
  • 從另外一台電腦上的 Docker image export 出來,然後在 import 到自已的電腦

Docker container 容器

  • 將docker image放入container裡面運行
  • 每個container都是獨立運行,可同時開啟許多個container,互不干擾

image大平台(Repository)

Docker-hub

Docker-hub

實作docker

  • Docker安裝
  • Docker pull / Docker run 
  • Docker port
  • Docker 製作images

Ubuntu安裝套件管理程式(APT)

下載docker

  • $ sudo apt update
  • $ sudo apt install docker.io 
  • $ service docker status

Docker安裝

Docker run (From docker-hub)

萬事起頭為 helloworld

$ docker run hello-world

Docker run

  • $docker  run  (--name xxx) <imageName>

  • 先從本機看有沒有image,沒有的話會從docker-hub裡面找
  • 執行完畢,會運行一個container

  • (--name xxx) 幫container取名字

Lab - 0x01

用cat 查看lab01

試著pull & run it

Docker Images 基礎指令教學

Docker container 基礎指令教學

Lab - 0x02

用cat 查看lab02

用hello-world Image   試著開3個container

然後關閉掉一個

$docker inspect <name|container-id>

顯示底層的container或image信息

$docker logs <name|container-id>

顯示container的日誌

Docker container port轉發

docker run –d -it --name (xxx) -p (host os port):(docker port) <image name>

Lab - 0x03

docker volume

主機能夠與container共享檔案的指令

$docker run -it -v <host dir>:<container dir> ubuntu /bin/bash

Docker 製作images

Docker file

Docker file 一點點指令

寫好dockerfile,

使用build即可建立image

Lab - 0x04

把container變回Images

Lab - 0x05

Lab - 0x05

docker images | grep none | awk '{print $1}' | xargs docker rmi

Lab - 0x06

Push你的images到docker hub上

$docker tag <Image Name>

<DockerHub帳號>/<Image Name>

ex: $docker  tag  NISRA  nisra/myfirstimages

$docker login

$docker push nisra/myfirstimage

今天對docker 意猶未盡嗎?

 

你可以試試這個

https://www.katacoda.com/courses/docker

Thanks for listening

打code順利

永無BUG

[2019NISRA_Class] Docker

By halloworld

[2019NISRA_Class] Docker

NISRA 20190312

  • 735