1、下載:
https://www.docker.com/products/docker-desktop/
如果電腦分多個盤,建議下載到可用存儲較大的盤,安裝的時候默認安裝到 C 盤,安裝完成後雙擊啓動
如果出現【Docker Engine stopped】,不要慌,如下圖
1)未安裝按照這樣操作 ,啓用【Hyper-V】
添加以後,系統需要重新啓動,然後就可以了。
2)已經添加過,則需要更新一下
在windows powershell中輸入wsl --update
,即可開始安裝wsl或者更新版本,有時候會超時,多試幾次即可
更新以後需要重啓系統
更多【Docker Engine stopped】的解決方法
3)資源存儲路徑修改
2、docker 基本知識
Image 鏡像:類似於一個模具,例如我把我弄好的一個環境,打包成一個鏡像,你拿過去,就可以直接製作成和我一樣的環境了
Container容器:利用容器技術,獨立運行一個或者一組應用,Docker 的容器是通過 docker 的鏡像來創建的。可以把容器理解爲一個類 Linux 的操作系統, 就是鏡像實例化成一個真實的可以運行的環境,可以對鏡像運行、停止、刪除操作
Repository 倉庫: 存放鏡像的地方,分爲共有倉庫、私有倉庫
docker-compose:啓動多個容器的一個配置文件,裏面可以配置要拉去哪個鏡像,然後構建成容器需要的參數,步驟等等等,反正理解爲它是一個配置文件,用來啓動一堆鏡像容器的。
概念 |
說明 |
Docker 鏡像(Images) |
Docker 鏡像是用於創建 Docker 容器的模板,比如 Ubuntu 系統。 |
Docker 容器(Container) |
容器是獨立運行的一個或一組應用,是鏡像運行時的實體。 |
Docker 客戶端(Client) |
Docker 客戶端通過命令行或者其他工具使用 Docker SDK (Develop with Docker Engine SDKs | Docker Documentation) 與 Docker 的守護進程通信。 |
Docker 主機(Host) |
一個物理或者虛擬的機器用於執行 Docker 守護進程和容器。 |
Docker Registry |
Docker 倉庫用來保存鏡像,可以理解爲代碼控制中的代碼倉庫。 |
Docker Machine |
Docker Machine是一個簡化Docker安裝的命令行工具,通過一個簡單的命令行即可在相應的平臺上安裝Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。 |
3、docker 命令(以 centos 爲例)
1)docker 服務相關命令
# 啓動docker容器
systemctl start docker
# 停止docker容器
systemctl stop docker
# 重啓docker容器
systemctl restart docker
# 查看docker容器狀態
systemctl status docker
# 設置開機自啓動docker容器
systemctl enable docker
2)docker 鏡像相關命令
# 1、查看本地鏡像
docker images #查看所有鏡像
docker images -q # 查看所有鏡像的id
# 2、搜索鏡像(從網絡中查找)
docker search 鏡像名稱 #搜索指定鏡像
docker search 鏡像名稱 --filter=stars=3000 #過濾出收藏量大於3000的鏡像
# 3、拉取鏡像
docker pull 鏡像名稱:版本號 #如果沒有寫版本號,默認拉取最新的laster版本
# 4、刪除鏡像
docker rmi 鏡像id #刪除指定的本地鏡像
docker rmi 鏡像名稱:版本號 #刪除指定的本地鏡像
docker rmi 'docker images -q' #刪除本地的所有鏡像
3)docker 容器相關命令
# 1、創建容器
docker run 參數 容器名稱:版本號 /bin/bash
#/bin/bash 代表創建容器後立即進入容器
參數說明:
-i: 以交互模式運行容器(保持容器運行),如果參數爲-it,容器創建後自動進入容器中,退出容器後,容器自動關閉
-t: 爲容器重新分配一個僞輸入終端,通常與 -i 同時使用
-d: 後臺運行容器,並返回容器ID,需要使用docker exec 目錄進入容器,退出容器後,容器不會自動關閉
--name : 爲容器指定一個名稱
-v 宿主機目錄:容器目錄 :給容器綁定一個數據卷(可以使用多個-v綁定多個數據卷)
-e:設置環境變量
-p: 指定端口映射,格式爲:主機(宿主)端口:容器端口
# 2、查看容器
docker ps # 查看正在運行的容器
docker ps -a # 查看所有的容器
# 3、進入容器
docker exec -it 容器名/容器id
# 4、退出容器
exit
# 5、啓動容器
docker start 容器名/容器
# 6、刪除容器
docker rm 容器名/容器id #刪除指定的容器
docker rm 'docker -ps -aq` #刪除所有的容器
# 7、查看容器進程
docker top 容器名/容器id
# 8、查看容器信息
docker inspect 容器名/容器id
# 9、查看容器日誌
docker logs 參數 容器名/容器id
參數說明:
-f :跟蹤輸出
-t :顯示時間戳
--tail 10 #顯示日誌的最後 10 行
--since:"xxxx-xx-xx" #顯示某個日期至今的所有日誌
更多 【docker 操作】
4、多版本部署
以 php 爲例
下載相關鏡像
php5.4版本:docker pull php:5.4-fmp
php7.4版本:docker pull php:7.4-fpm
nginx版本:docker pull ngxin:latest(最新版本)
5、整包環境部署(以 php 爲例)
DNMP(Docker + Nginx/Openresty + MySQL5,8 + PHP5,7,8 + Redis + ElasticSearch + MongoDB + RabbitMQ)是一款全功能的LNMP一鍵安裝程序,支持Arm CPU。
這裏推薦 GitHub上yeszao的倉庫https://github.com/yeszao/dnmp(國內:https://gitee.com/yeszao/dnmp)