Docker快速入門

作者:crane-yuan 日期:2017-04-19


簡介

Docker 最初是 dotCloud 公司創始人 Solomon Hykes 在法國期間發起的一個公司內部項目,它是基於 dotCloud 公司多年雲服務技術的一次革新,並於 2013 年 3 月以 Apache 2.0 授權協議開源),主要項目代碼在 GitHub 上進行維護。Docker 項目後來還加入了 Linux 基金會,併成立推動開放容器聯盟。

Docker 自開源後受到廣泛的關注和討論,至今其 GitHub 項目已經超過 3 萬 6 千個星標和一萬多個 fork。甚至由於 Docker 項目的火爆,在 2013 年底,dotCloud 公司決定改名爲 Docker。Docker 最初是在 Ubuntu 12.04 上開發實現的;Red Hat 則從 RHEL 6.5 開始對 Docker 進行支持;Google 也在其 PaaS 產品中廣泛應用 Docker。

Docker 使用 Google 公司推出的 Go 語言 進行開發實現,基於 Linux 內核的 cgroup,namespace,以及 AUFS 類的 Union FS 等技術,對進程進行封裝隔離,屬於操作系統層面的虛擬化技術。由於隔離的進程獨立於宿主和其它的隔離的進程,因此也稱其爲容器。最初實現是基於 LXC,從 0.7 以後開始去除 LXC,轉而使用自行開發的 libcontainer,從 1.11 開始,則進一步演進爲使用 runC 和 containerd。

Docker 在容器的基礎上,進行了進一步的封裝,從文件系統、網絡互聯到進程隔離等等,極大的簡化了容器的創建和維護。使得 Docker 技術比虛擬機技術更爲輕便、快捷。

基本概念

Docker 包括三個基本概念

  • 倉庫(Repository)
  • 鏡像(Image)
  • 容器(Container)

這裏先不介紹了,看完後面就有概念了

安裝Docker

下面只介紹ArchLinux下的安裝方式,其他系統的可以參考這個Docker安裝指南

> pacman -S docker #安裝Docker
> docker -v #查看下Docker版本
> systemctl start docker #啓動Docker服務

安裝完後如果啓動不了docker服務,重啓一下就可以了

由於國內的網絡問題,一般建議配置下鏡像代理

配置鏡像加速源

對於使用 systemd 的系統(比如,ArchLinux),用 systemctl start docker 啓用服務後,
編輯 /etc/systemd/system/multi-user.target.wants/docker.service 文件,找到 ExecStart= 這一行,在這行最後添加加速器地址 --registry-mirror=<加速器地址>,如:

ExecStart=/usr/bin/dockerd --registry-mirror=https://jxus37ad.mirror.aliyuncs.com

注:對於 1.12 以前的版本,dockerd 換成 docker daemon。

重新加載配置並且重新啓動。

> sudo systemctl daemon-reload
> sudo systemctl restart docker

獲取鏡像

docker pull [選項] [Docker Registry地址]<倉庫名>:<標籤>
> docker pull ubuntu:14.04

啓動容器

> docker run -it --rm ubuntu:14.04 bash
-it:這是兩個參數,一個是 -i:交互式操作,一個是 -t 終端。我們這裏打算進入 bash 執行一些命令並查看返回結果,因此我們需要交互式終端。
--rm:這個參數是說容器退出後隨之將其刪除。默認情況下,爲了排障需求,退出的容器並不會立即刪除,除非手動 docker rm。我們這裏只是隨便執行個命令,看看結果,不需要排障和保留結果,因此使用 --rm 可以避免浪費空間。
ubuntu:14.04:這是指用 ubuntu:14.04 鏡像爲基礎來啓動容器。
bash:放在鏡像名後的是命令,這裏我們希望有個交互式 Shell,因此用的是 bash。

關閉/刪除容器

> docker ps -a #列出正在運行的容器
> docker stop {CONTAINER ID} #停止運行的容器
> docker rm {CONTAINER ID} #刪除容器,注意鏡像並沒有刪除

列出鏡像

> docker images

刪除鏡像

> docker rmi {IMAGE ID}

參考文章

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章