Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
官網:https://www.docker.com/ 相關資料:
1、Docker入門教程 http://dockone.io/article/111
2、Docker_百度百科 http://baike.baidu.com/view/11854949.htm
3、史上最全Docker資料集粹 http://special.csdncms.csdn.net/BeDocker/
4、Docker - 話題精華 - 知乎 http://www.zhihu.com/topic/19950993/top-answers
5、docker 簡明教程 | 簡果網 http://www.simapple.com/docker-tutorial
6、如何使用Dockerfile構建鏡像 http://blog.csdn.net/qinyushuang/article/details/43342553
7、Dockerfile reference - Docker https://docs.docker.com/engine/reference/builder/
Docker與虛擬機比較
作為一種輕量級的虛擬化方式,Docker在運行應用上跟傳統的虛擬機方式相比具有顯著優勢:
Docker容器很快,啟動和停止可以在秒級實現,這相比傳統的虛擬機方式要快得多。
Docker容器對系統資源需求很少,一台主機上可以同時運行數千個Docker容器。
Docker通過類似Git的操作來方便用戶獲取、分發和更新應用鏡像,指令簡明,學習成本較低。
Docker通過Dockerfile配置文件來支持靈活的自動化創建和部署機制,提高工作效率。

虛擬機實現了硬件上的虛擬,而Docker則實現了操作系統級別的虛擬。
安裝
Docker 要求 Ubuntu 系統的內核版本高於 3.10 ,通過 uname -r 命令查看你當前的內核版本:
[root@bogon ~]# uname -r
3.10.0-327.22.2.el7.x86_64
Docker支持以下的CentOS版本:
CentOS 7 (64-bit)
CentOS 6.5 (64-bit) 或更高的版本
Docker 支持以下的 Ubuntu 版本:
Ubuntu Precise 12.04 (LTS)
Ubuntu Trusty 14.04 (LTS)
Ubuntu Wily 15.10
其他更新的版本……
Linux安裝
curl -fsSL https://get.docker.com/ | sh
# daocloud.io 國內鏡像
curl -sSL https://get.daocloud.io/docker | sh
該安裝包適用於 Ubuntu,Debian,Centos 等大部分主流 Linux 發行版。
當以普通用戶身份去使用docker images時,如果出現以下錯誤:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/json: dial unix /var/run/docker.sock: connect: permission denied
是因為權限問題:
sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo service docker restart
newgrp - docker
CentOS7支持使用yum安裝:
yum update
yum install docker
查看文檔:
https://docs.docker.com/engine/installation/linux/centos/
http://docs.daocloud.io/faq/install-docker-daocloud
查看版本:
docker version
顯示:
Client:
Version: 1.11.2
API version: 1.23
Go version: go1.5.4
Git commit: b9f10c9
Built: Wed Jun 1 21:23:11 2016
OS/Arch: linux/amd64
Server:
Version: 1.11.2
API version: 1.23
Go version: go1.5.4
Git commit: b9f10c9
Built: Wed Jun 1 21:23:11 2016
OS/Arch: linux/amd64
啟動docker服務:
service docker start
# 或者 systemctl start docker
centos7使用systemctl 替代service 管理服務。
systemctl 常見用法:
# 格式
systemctl 動作 服務名.service
# 常見命令 systemctl start docker #啟動
systemctl restart docker #重啟
systemctl stop docker #停止
systemctl status docker #查看狀態
systemctl enable docker #自啟動
systemctl disable docker #禁止自啟動
.service可以省略。 (詳見:RHEL7中systemctl的用法 http://blog.csdn.net/catoop/article/details/47318225)
為了后面的需要,我們這里下載個ubuntu的鏡像:
docker search ubuntu
docker pull ubuntu
# 查看所有可用鏡像 docker images -a
使用docker命令 docker images 備注:查看docker已經安裝的鏡像 裸機狀態下為空

使用docker安裝mysql step1:使用docker pull 拉取docker hub倉庫中mysql鏡像 (注意備注) mysql鏡像版本如下:

docker pull mysql:8.0
備注:docker pull 默認到官方參考拉取 mysql:8.0 鏡像名:鏡像tag
官方地址為國外地址安裝緩慢可進行配置
修改鏡像文件拉取地址為ustc
vi /etc/docker/daemon.json
備注:insert 編輯內容如下 並esc 輸入:wq 保存退出
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
重啟docker 重新進行step1 安裝速度變快
systemclt restart docker
查看鏡像安裝情況
docker images

啟動docker中鏡像
docker run --name mysql8.0 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0
備注 :--name 服務啟動別名設置 -p端口映射 宿主機端口:鏡像運行端口 -d 鏡像名:tag 使用守護進程模式啟動 -e:設置root帳號密碼
查看運行的鏡像
docker ps -a
進入鏡像 運行mysql
docker exec -it mysql8.0 /bin/bash
備注:exec docker進入容器命令 -it 容器中服務別名 /bin/bash 表示命令行模式 與 -d 后台守護進行模式啟動 形成兩種運行方式 進入容器中如圖所示變化如下

cd /usr/bin
mysql -u root -p 備注: 在容器中進入用戶目錄啟動mysql 輸入密碼連接成功

