參考: https://blog.csdn.net/qq_26870933/article/details/81675201
1.進入網址https://docs.docker.com/docker-for-windows/install/#download-docker-for-windows 下載並安裝
2.啟動以后會出現在桌面的右下角區域,鼠標放上去以后顯示Docker is running表示啟動成功,第一次安裝啟用好像是會彈出個Docker Cloud登錄界面,去注冊然后登錄,使用和git有點類似,可以pull圖像等等
3.
docker run hello-world 測試是否成功 官方的測試鏡像 docker info 查看信息 docker version 查看版本
docker inspect 4d781f132cd5 #查看指定容器ip
4.簡單使用

-d # 后台運行容器,並返回容器ID; -i # 以交互模式運行容器,通常與 -t 同時使用; -t # 為容器重新分配一個偽輸入終端,通常與 -i 同時使用; -P # 隨機端口映射,容器內部端口隨機映射到主機的高端口 -p # 指定端口映射,格式為:主機(宿主)端口:容器端口 --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=[]: 開放一個端口或一組端口; --volume , -v: 綁定一個卷 -a stdin: 指定標准輸入輸出內容類型,可選 STDIN/STDOUT/STDERR 三項;
查看:
docker images 查看所有的docker鏡像 docker ps -a 查看所有docker容器 docker ps 查看在運行的docker容器 docker stop 容器id 停止運行指定容器 docker start 容器id 運行指定容器
刪除:
(1)先用docker ps -a 查看所有的在運行的容器 (2)docker stop 容器id (3)然后docker images 查看對應刪除任務id (4)docker rm 鏡像id docker rm -f 鏡像id 強制刪除,就算已經啟動 也可刪 如果多個鏡像id 一致 可以 "REPOSITORY"和"TAR"進行刪除:
5. docker exec -it 容器id (這里的容器id可以只寫前四位)
進入容器 : docker exec -it 容器id bash docker進入容器需要開啟一個 新的bash窗口
也可以使用 docker run -it NAMES bash
這邊遇到一個 查看ip出錯 主要原因是docker的base鏡像只包含簡單的操作系統,其他命令需要自己安裝
docker run -d -p 8000:80 --name webserver nginx
-d # 后台啟動nginx容器 --name webserver # 自定義容器名字(默認會是一段隨機字符串) -p 8000:80 # 本機的8000端口映射到docker容器的80端口中 nginx # 使用這個nginx鏡像啟動容器
打開瀏覽器 http://localhost
docker logs webserver # 查看上面啟動的web容器的日志 可以加 -f 標准輸出
docker port 55f870061ed9 # 查看指定容器端口映射
docker top 00f7ddc96622 # 查看容器中有哪些進程
docker stats 00f7ddc96622 # 查看容器資源使用情況
docker exec -it webserver bash #進入容器
docker stop webserver #停止容器
docker start webserver #打開容器
docker rm -f webserver #強制刪除容器
docker container prune #清理所有處於終止狀態的容器
docker ps -l #查詢最后一次創建的容器
6. 導出
docker export f20fa835671e > nginx.tar
導入 : 可以使用 docker import 從容器快照文件中再導入為鏡像
cat ./nginx.tar | docker import - nginx:v1
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE test/nginx v1 e57719935085 6 seconds ago 125MB friendlyhello latest 0e4cf06588e3 43 minutes ago 179MB python 3.7-slim 69afd9568c9d 6 days ago 179MB nginx latest 6678c7c2e56c 12 days ago 127MB
|
7.更新鏡像
更新鏡像之前,我們需要使用鏡像來創建一個容器。
docker run -it ubuntu:15.10 /bin/bash
在運行的容器內使用 apt-get update 命令進行更新。
在完成操作之后,輸入 exit 命令來退出這個容器。
此時 ID 為 a10c92a54464 的容器,是按我們的需求更改的容器。我們可以通過命令 docker commit 來提交容器副本。
docker commit -m="has update" -a="user" a10c92a54464 runoob/ubuntu:v2
各個參數說明:
-
-m: 提交的描述信息
-
-a: 指定鏡像作者
-
e218edb10161:容器 ID
-
runoob/ubuntu:v2: 指定要創建的目標鏡像名
docker run -t -i runoob/ubuntu:v2 /bin/bash 啟動一個容器
8.docker映射宿主機文件夾 並指定端口 命名obj
docker run -itd -v C:\Users\admin\Desktop\erp:/home/pro -p 0.0.0.0:8081:8080 --name obj 容器id bash #-p 后面參數 前面是宿主機端口,后面是docker端口
9. 使用過程的一個錯誤(更新中遇到的錯誤) (還是自己手賤 升級失敗然后炸了)
百度查了下
cd "C:\Program Files\Docker\Docker" ./DockerCli.exe -SwitchDaemon (這個不行就 DockerCli.exe -SwitchDaemon 這個命令,看自己的文件位置)
然后 運行 docker images 會發現全都沒有了
按照百度經驗 說重新指定DockerDesktop.vhdx 就可以
如果setting改路徑的消失了(docker炸掉了。) 就需要重新安裝 docker
安裝完docker 指定DockerDesktop.vhdx 再次找到之前的 路徑 會發現已經不存在了會有一個這樣的錯誤
ls: reading directory '.': Operation not permitted
沒辦法 只能刪除鏡像 docker rm 鏡像id
從新拉取一次 再來一次端口文件映射
最后 ok ,完美結束。