docker-tutorial (2018-7-1)
This repo is a translation of the docs.docker.com.
Also, you can check the English version here.
0. Docker CE 安裝
環(huán)境:ubuntu 16.04
Docker官網(wǎng)上有在不同系統(tǒng)上的詳細安裝步驟和多種安裝方法,如果有需要可以瀏覽here.
刪除舊版本
如果安裝了舊版本請刪除他們:
$ sudo apt-get remove docker docekr-engine docker.io
使用apt安裝
配置ubuntu repository
$ sudo apt-get update # 更新一下源
# 安裝需要的軟件使apt能夠在HTTPS傳輸
$ sudo apt-get install apt-transport-https
$ sudo apt-get install ca-certificates
$ sudo apt-get install curl
$ sudo apt-get install software-properties-common
添加docker官方GPG密鑰
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
添加穩(wěn)定版的repository
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
安裝Docker CE
# 更新一下apt源
$ sudo apt-get update
# 安裝最新版 Docker CE
$ sudo apt-get install docker-ce
測試Docker安裝
$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete
Digest: sha256:ca0eeb6fb05351dfc8759c20733c91def84cb8007aa89a5bf606bc8b315b9fc7
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
如果有權(quán)限問題是應(yīng)為當(dāng)前用戶沒有執(zhí)行docker命令的權(quán)限,可以在命令前加sudo
跨扮,或者把當(dāng)前用戶添加到docker用戶組。
# 添加當(dāng)前用戶到docker組
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
執(zhí)行完以上命令后登出在登入就完成了忧饭。
查看下載的鏡像
$ docker image ls
查看容器,由于剛才運行的容器已經(jīng)關(guān)閉了所以要添加參數(shù)才能看到
$ docker container ls -all
命令速記
# 查看Docker命令
$ docekr
$ docker container --help
# 查看Docker版本和安裝信息
$ docker --version
$ docker version
$ docker info
# 運行Docker容器
$ docker run hello-world
# 查看已下載Docker鏡像
$ docker image ls
# 查看Docker容器(運行中,所有,所有運行在quiet mode的)
$ docker container ls
$ docker container ls -all
$ docker container ls -aq
1. Orientation - 概述
Docker concepts - Docker概念
Docker是一個為開發(fā)者和運維提供開發(fā)勺疼、部署、運行容器化應(yīng)用程序的框架平臺捏鱼。用Linux容器去部署應(yīng)用程序這種方式被成為容器化(containerziation)执庐。容器這個概念并不是新提出的,docker引入概念的是使用容器來使得部署應(yīng)用更加簡單导梆。
Images and containers - 鏡像和容器
一個容器(container)就是一個運行的鏡像(image)轨淌。鏡像(image)就是一個包含了需要運行的應(yīng)用程序和他所需要的運行時環(huán)境、庫看尼、環(huán)境變量递鹉、配置文件等等。
容器(container)是一個鏡像運行的實例狡忙,可以使用docker ps
命令來查看系統(tǒng)中運行的容器梳虽。
容器和鏡像的關(guān)系可以對比OOP(面向?qū)ο缶幊?中類和對象的關(guān)系。
Containers and virtual machines - 容器和虛擬機
容器和虛擬機實現(xiàn)的功能是相似的灾茁,但他們本質(zhì)上是有差別的窜觉。
虛擬機是在現(xiàn)有的系統(tǒng)上,再運行一個操作系統(tǒng)北专,這可以很好的隔離主機和虛擬機禀挫,但帶來的開銷也是非常大的。
容器則可以從應(yīng)用程序這個角度來理解拓颓。容器可以是一個包含了程序運行所需要的庫和依賴的一個應(yīng)用程序语婴,簡單來說就是把庫和依賴關(guān)系集成到應(yīng)用程序中,而不是使用系統(tǒng)的庫和依賴驶睦,這樣也能實現(xiàn)隔離的功能砰左。所以容器的系統(tǒng)開銷是非常小的。
總之场航,虛擬機是一個隔離的操作系統(tǒng)缠导,而容器則是一個應(yīng)用程序。