Docker 是一個開源的應用容器引擎,基於 Go 語言 並聽從Apache2.0協議開源。
Docker 可讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,而後發佈到任何流行的 Linux 機器上,也能夠實現虛擬化。
容器是徹底使用沙箱機制,相互之間不會有任何接口,更重要的是容器性能開銷極低。html
在沒有用docker以前,咱們須要在本地,測試,線上部署相同的環境,相同的軟件每一個環境都要安裝一次,而且每來一個新同事,相同的環境有要從新安裝一遍,很麻煩且過於重複。docker能夠完美的解決這個問題
用docker以後咱們只須要在本地,測試,線上分別安裝相同的docker,而後在本地搭建環境,將搭建好的環境容器生成docker鏡像,只要將這個docker鏡像提供給測試和線上便可構建出相同的環境,在代碼部署上咱們能夠利用docker數據卷將本地項目目錄文件直接掛載到測試環境中linux
咱們在官網上看到docker不能在win7上直接安裝,須要經過docker toolbox來安裝nginx
Requires Microsoft Windows 10 Professional or Enterprise 64-bit. For previous versions get Docker Toolbox.git
so,根據官網的介紹咱們能夠在這裏https://docs.docker.com/toolbox/overview/直接點擊Get Docker Toolbox for Windows
按鈕直接下載,若是下載慢的話能夠在https://get.daocloud.io/toolbox/下載,我選擇DockerToolbox-18.09.1.exe 這個版本。下載完後可直接雙擊安裝
安裝的過程當中須要選擇安裝哪些組件,這裏因爲我本機已經安裝了git和virtual box,因此就不選了,沒安裝的建議全選
安裝完後桌面上多出docker和kitematic兩個快捷方式docker
雙擊Docker Quickstart Terminal,因爲咱們沒有一塊兒安裝git,所以彈出須要咱們指定用哪一個bash.exe,這裏咱們選擇本機安裝的Git/bin/bash.exe文件,等一段時間後安裝完成,出現以下界面
執行docker-machine ssh default便可登陸上鏡像
這裏docker啓用默認的鏡像,ip爲192.168.99.100,咱們能夠經過xshell登錄上此服務器
default鏡像默認的用戶名是docker密碼是tcuser
至此docker在win7上安裝完成,shell
虛擬機的默認存儲位置是C:\Users\Administrator.docker\machine\machines ,後期docke鏡像文件會不斷增長,爲了給系統盤減負,最好將磁盤移動到其餘位置。centos
docker默認的鏡像倉庫地址是https://hub.docker.com/,但國內的下載速度太過緩慢,最好使用國內鏡像,
參考http://guide.daocloud.io/dcs/daocloud-9153151.html#docker-toolbox設置鏡像加速bash
在docker官網上咱們能夠直接下載Docker Desktop (Mac) 可直接在https://hub.docker.com/editions/community/docker-ce-desktop-mac下載(須要登陸),下載後雙擊執行docker.dmg正常安裝便可
啓動docker後在系統菜單欄咱們能夠看到docker標誌,說明docker安裝成功服務器
參考http://guide.daocloud.io/dcs/daocloud-9153151.html#docker-toolbox設置鏡像加速
網絡
// 列出本地已有鏡像 docker images // 從遠端下載鏡像 docker pull <image name> // 使用鏡像建立並啓動一個容器(若本地沒有該鏡像,則會先從遠端下載,每次run都會生成一個容器,嗯,輕量~) docker run hub.c.163.com/library/hello-world:latest //列出正在運行的容器 docker ps // 列出全部容器(包括Exited) docker ps -a // 啓動指定的容器 docker start <container id> // 中止指定的容器 docker stop <container id> // 中止全部運行中的容器 docker stop $(docker ps -q) // 刪除指定容器 docker rm <container id> //刪除全部容器 docker rm $(docker ps -aq) //中止並刪除容器 docker stop $(docker ps -q) & docker rm $(docker ps -aq) // 刪除指定鏡像(刪除鏡像前須先中止並刪除容器) docker rmi <image id> // 重啓容器 docker restart <container id> // 建立一個新的容器並運行一個命令 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] -a stdin: 指定標準輸入輸出內容類型,可選 STDIN/STDOUT/STDERR 三項; -d: 後臺運行容器,並返回容器ID; -i: 以交互模式運行容器,一般與 -t 同時使用; -p: 端口映射,格式爲:主機(宿主)端口:容器端口 -t: 爲容器從新分配一個僞輸入終端,一般與 -i 同時使用; --name="nginx-lb": 爲容器指定一個名稱; --dns 8.8.8.8: 指定容器使用的DNS服務器,默認和宿主一致; --dns-search example.com: 指定容器DNS搜索域名,默認和宿主一致; -h "mars": 指定容器的hostname; -e username="ritchie": 設置環境變量; --env-file=[]: 從指定文件讀入環境變量; --cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運行; -m :設置容器使用內存最大值; --net="bridge": 指定容器的網絡鏈接類型,支持 bridge/host/none/container: 四種類型; --link=[]: 添加連接到另外一個容器; --expose=[]: 開放一個端口或一組端口; // 交互運行 docker run -it centos /bin/bash /bin/bash 是進入到linux中命令行 // 進入容器 docker exec -it centos /bin/bash // 容器拷貝到主機 docker cp <container id>:文件路徑 主機目標路徑 // 主機拷貝到容器 docker cp 主機文件路徑 <container id>:文件路徑
1.先設置 win7 到 VirtualBox 中 docker 用的那個虛擬機的共享文件夾
填寫好共享文件夾路徑和名稱。如:共享文件夾路徑:E: 共享文件夾名稱: e
而後勾選自動掛載和固定分配
2.重啓 docker
在上面的鏡像容器中咱們能夠搭建本身所須要的各類環境,搭建好後可將這個更改後的容器打包成一個鏡像,並上傳到鏡像倉庫供你們使用
在搭建好環境的容器中退出時咱們應當使用ctrl+p+q快捷鍵,而不是exit退出,由於這樣直接退出會關閉當前容器
docker commit :從容器建立一個新的鏡像。
docker commit -a "name" -m "this is profile" <container id> imageName
這裏以阿里云爲例,將鏡像推送到Registry
$ sudo docker login --username=jesse131 registry.cn-shenzhen.aliyuncs.com $ sudo docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/mirror-study/study:[鏡像版本號] $ sudo docker push registry.cn-shenzhen.aliyuncs.com/mirror-study/study:[鏡像版本號]
若是不想經過網絡拉去鏡像也能夠經過U盤拷貝鏡像
docker save <container id> -o d:/www/centos.tar
docker load -i d:/www/centos.tar