什麼是docker
Docker 項目的目標是實現輕量級的操作系統虛擬化解決方案。
爲什麼使用docker
- 更快速的交付和部署
- 更高效的虛擬化
- 更輕鬆的遷移和擴展
- 更簡單的管理
特性 | 容器 | 虛擬機 |
---|---|---|
啓動 | 秒級 | 分鐘級 |
硬盤使用 | 一般爲 MB | 一般爲 GB |
性能 | 接近原生 | 弱於 |
系統支持量 | 單機支持上千個容器 | 一般幾十個 |
docker的基本概念
鏡像(image)
docker鏡像就是一個只讀模版。一個鏡像可以包含一個完整的ubuntu操作系統環境。鏡像可以用來創建docker容器。
容器(container)
docker利用容器來運行其他應用。容器是從鏡像創建的實例。它可以被啓動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。鏡像是隻讀的,容器在啓動的時候創建一層可寫層作爲最上層。
docker倉庫(repository)
倉庫是集中存放鏡像文件的場所。當用戶創建了自己的鏡像之後就可以使用 push 命令將它上傳到公有或者私有倉 庫,這樣下次在另外一臺機器上使用這個鏡像時候,只需要從倉庫上 pull 下來 就可以了。
安裝
我是mac,所以參照來官方網站mac版的安裝教程。 這裏不再詳述。
docker的基本操作
docker pull
可以使用 docker pull 命令來從倉庫獲取所需要的鏡像。
Wangs-MacBook-Pro:~ wxc575843$ docker pull tomcat Using default tag: latest latest: Pulling from library/tomcat 43c265008fae: Already exists af36d2c7a148: Pull complete 2b7b4d10e1c1: Pull complete 35dfd23791b5: Pull complete fa0aca12f0dd: Downloading [=======================> ] 36.23 MB/77.74 MB 6e3e424fb5e8: Download complete 9707fd7c2520: Download complete bc96a5a31454: Download complete 02c274ea6f09: Download complete 0816d68406c9: Download complete 6dd15d6d17e3: Download complete
docker images
使用 docker images 顯示本地已有的鏡像。
在列出信息中,可以看到幾個字段信息
- 來自於哪個倉庫,比如 ubuntu
- 鏡像的標記,比如 14.04
- 它的 ID 號(唯一)
- 創建時間
- 鏡像大小其中鏡像的 ID 唯一標識了鏡像
Wangs-MacBook-Pro:~ wxc575843$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest 7b6daea9936c 6 days ago 355.5 MB
mysql latest cf725f136fd2 6 days ago 383.4 MB
ubuntu latest f753707788c5 2 weeks ago 127.2 MB
centos latest 980e0e4c79ec 7 weeks ago 196.8 MB
hello-world latest c54a2cc56cbb 3 months ago 1.848 kB
刪除鏡像&容器
docker mi IAMGE ID & docker rm CONTAINER ID顯示所有的容器
docker ps(顯示運行的容器)
docker ps -a (顯示所有容器)docker run
創建新容器
參數- -i 指定輸入爲stdin
- -name 指定容器的名字
- -t 選項讓Docker分配一個僞終端(pseudo-tty)並綁定到容器的標準輸入上
- -d 後臺運行,重新顯示使用docker attach
docker attach
將後臺的容器顯示在前臺。docker start/stop/restart
docker commit
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
- -m 說明提交信息
Dockerfile
使用 來擴展一個鏡像比較簡單,但是不方便在一個團隊中分 享。我們可以使用 來創建一個新的鏡像。爲此,首先需要創建一 個 Dockerfile,包含一些如何創建鏡像的指令。
Dockerfile 基本的語法是- 使用 # 來註釋
- FROM 指令告訴 Docker 使用哪個鏡像作爲基礎
- 接着是維護者的信息
RUN 開頭的指令會在創建中運行,比如安裝一個軟件包,在這裏使用 apt-get來安裝了一些軟件
編寫完成 Dockerfile 後可以使用 docker build 來生成鏡像。
docker build -t=”REPOSITORY:TAG” DockerfilePATH
從本地文件系統導入
比如,先下載了一個 ubuntu-14.04 的鏡像,之後使用以下命令導入:然後查看新導入的鏡像。sudo cat ubuntu-14.04-x86_64-minimal.tar.gz |docker import - ubuntu:14.04
上傳鏡像
用戶可以通過 docker push 命令,把自己創建的鏡像上傳到倉庫中來共享。例 如,用戶在 Docker Hub 上完成註冊後,可以推送自己的鏡像到倉庫中。docker push NAME[:TAG] [OPTIONS]
存出和載入鏡像
docker save -o ubuntu_14.04.tar ubuntu:14.04 sudo docker load --input ubuntu_14.04.tar