一、Docker是什么
- 概述:
Docker是Linux容器封裝,提供一些簡單易用的容器使用接口。
Docker將應用程序與該程序的依賴,打包在一個文件里面,運行這個文件,就會生成一個虛擬容器。程序在虛擬容器中運行的時候,就好像運行在真的物理機上一樣。
Docker提供版本管理、復制、分享、修改扥功能,就像管理普通代碼一樣管理Docker容器。
- 關於其他帶環境安裝的解決方案:
環境配置難題軟件開發最大的麻煩就是環境配置。開發環境運行沒問題,生產不能用。因為生產缺某些組件。換一台機器,就要重新配置一遍。這樣太浪費時間和精力了。
虛擬機的帶環境安裝的解決方案。缺點:占用資源太多:虛擬機本身耗資源,比如虛擬機中的程序占用1M內存,但是虛擬機本身要幾百兆內存才可以運行。冗余步驟多:虛擬機本身是完整操作系統,一些系統級別的操作步驟,無法跳過,比如:用戶登錄。啟動慢:啟動操作系統要多久,啟動虛擬機就要多久。
Linux容器:針對虛擬機的缺點,Linux發展出另外的一種虛擬化技術:Linux容器。Linux容器不是模擬一個完整的操作系統,而是對進程進行隔離。即:在正常進程外面套一個保護層,對於容器里面的進程來說,它接觸到的資源都是虛擬的,實現了與底層系統隔離。
Linux容器優點:啟動快:容器里面的應用,是底層系統中的一個進程,啟動容器相當於啟動一個進程。而不是一個操作系統。占用資源少:容器只占用需要的資源,不占用哪些沒有用到的資源。虛擬機是一個完整的操作系統,不可避免地要占用其他資源。體積小:容器只包含用到的組件,而虛擬機包含整個操作系統的打包。所以 容器文件比虛擬機文件要小得多。
二、Docker的用途
-
提供一次性的環境。比如:本地測試他人的軟件、持續集成的時候提供單元測試和構建的環境。
-
提供彈性的雲服務。因為Docker容器可以隨開隨關,很適合動態擴容和縮容。
-
組件微服務架構。通過多個容器,一台機器可以跑多個服務,聽此可以在本機模擬出微服務架構。
三、Docker安裝
- Linux安裝
Docker要求CentOS版本高於 3.10。安裝之前可以先查看版本內核:
//1.查看內核版本
uname -r
//2.安裝必要的系統工具:
yum install -y yum-utils device-mapper-persistent-data lvm2
//3.添加軟件源信息:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
//4.更新yum緩存
sudo yum makecache fast
//5.安裝 Docker-ce
sudo yum -y install docker-ce
//6.啟動Docker后台服務:
sudo systemctl start docker
//7.測試運行 hello-world
docker run hello-world
//看到這個證明安裝成功
hello from docker
- windows安裝
系統是 win10專業版安裝 docker from windows 即可。如果不是,需要安裝docker tool box。
//1.需要修改 DOcker Quick Start ,右鍵點,屬性,快捷方式,目標:
"D:\Program Files (x86)\Git\bin\bash.exe" --login -i "C:\Program Files\Docker Toolbox\start.sh"
//git位置
//2.修改腳本后:
DOCKER_MACHINE="C:\Program Files\Docker Toolbox\docker-machine.exe"
//這是安裝路徑
//3.修改start.sh中 VBOXMANAGE 的路徑, 19行往下
------------------
STEP="Looking for vboxmanage.exe"
VBOXMANAGE="C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
#if [ ! -z "$VBOX_MSI_INSTALL_PATH" ]; then
# VBOXMANAGE="${VBOX_MSI_INSTALL_PATH}VBoxManage.exe"
#else
# VBOXMANAGE="${VBOX_INSTALL_PATH}VBoxManage.exe"
#fi
四、image文件
Docker把應用程序及其依賴,打包在 image 文件里面,只有通過這個文件,才能生成Docker容器。
Docker根據 image文件生成容器的實例。
image文件可以繼承,實際開發中,一個image文件往往通過集成另一個image文件,加上一些個性化設置而完成的。
- 列出本機所有的image文件
docker image ls
- 刪除image文件
docker image rm [image文件名]
五、用docker安裝redis
- 1、搜索鏡像:
docker search redis
- 2、拉取鏡像:
docker pull redis
- 3、啟動
docker run --name myredis -p 6379:6379 -d redis redis-server
//-p 6379:6379 左邊6379表示win10端口 右邊表示容器中redis端口
//--name 表示 redis鏡像的實例名稱
//-d 后台運行
- 4、看進程
docker ps
- 5、操作redis
///進入容器
docker exec -it 2b377f9840fc bash
// 2b377f9840fc 是docker ps查看的CONTAINER ID
//啟動redis-cli
redis-cli
//退出
exit
六、推薦一篇詳細Docker博客
http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html