win10安裝docker


一、安裝:win10安裝docker,下載客戶端安裝即可。

二、配置及使用:
docker engine 配置國內鏡像源:
"registry-mirrors": ["https://cr.console.aliyun.com"],
cmd窗口打開powershell
docker version
docker search hello-world
docker search centos
docker pull hello-world
docker tag 860c279d2fec runoob/centos:dev 設置鏡像標簽
docker run helllo-world
docker run --name some-nginx -p 1080:80 -v f:\docker:/usr/share/nginx/html -d nginx
docker run -i -t centos /bin/bash 運行交互式的容器,通過運行 exit 命令或者使用 CTRL+D 來退出容器
docker logs 容器ID或容器名 輸出日志
docker ps
docker ps -a
docker ps -l 查詢最后一次創建的容器:
docker stop/restart 容器ID或容器名
docker stop -t=60 容器ID或容器名
docker rmi 鏡像id
docker rm 容器id
docker attach [container_id] #連接一個正在運行的container實例(即實例須為start狀態,可以多個 窗口同時attach 一個container實例),但當某個窗口因命令阻塞時,其它窗口也無法執行了。
exec可直接在容器內運行的命令。docker exec -ti [container_id] /bin/bash


三、運行一個鏡像:
方式一:docker run命令方式
docker run --name some-nginx -p 1080:80 -v /some/content:/usr/share/nginx/html -d nginx
(docker run --name some-nginx -p 1080:80 -v f:\docker:/usr/share/nginx/html -d nginx)
參數說明:
--name:定義容器名。
-p:宿主機與容器的端口掛載,格式:宿主機端口:容器內部端口
-v:宿主機目錄與容器內目錄映射,格式:宿主機目錄:容器內部目錄
-d:后台執行
執行以上命令就可以啦,這里把容器名取名為some-nginx,把容器的80端口映射到宿主機的1080端口,容器內的/usr/share/nginx/html目錄映射到宿主機的/some/content目錄,使用的是nginx最新的鏡像,鏡像部分也可以寫成 “nginx:版本”比如“nginx:1.15.1”。
在/some/content創建一個index.html,隨便輸入個內容。
訪問下 ip+1080可以看到請求到nginx了。
方式二:Dockerfile配置文件構建鏡像方式
1.創建一個文件,命名為Dockerfile,輸入以下內容。
FROM nginxCOPY html /usr/share/nginx/html
FROM nginx 代表以nginx鏡像為基礎構建我們的鏡像。

注意需要先在Dockerfile同目錄創建html目錄,不然會報錯。

Dockerfile文件內可以自定義鏡像內容,有很多指令可以用,比如可以在配置容器創建后運行shell腳本等,可以自行查閱,本文僅做一個簡單的用法示例入門。

注意:Dockerfile 的指令每執行一次都會在 docker 上新建一層,所以盡量不要寫太多層。

2.在Dockerfile同目錄下運行命令創建鏡像

docker build -t my-nginx-image .

注意最后面有一個點。

3.運行容器

docker run --name some-nginx -p 1080:80 -d my-nginx-image
在html目錄里新建一個index.html文件隨便輸入個內容,訪問下 ip+1080可以看到請求到nginx了。
Dockerfile一般用於自定義鏡像,因為是個文件,也比命令的方式更易於保存與團隊間共享。

方式三:docker -compose方式

在需要管理多個容器時用以上兩種方式都不太適合,不僅要管理每個容器的配置信息,還要處理容器間的關系,這時候就需要docker-compose來做容器編排了。

1.創建一個docker-compose.yml文件,輸入以下內容
# yaml 配置
version: '3'
services:
nginx:
image: nginx
container_name: some-nginx1
ports:
- "1080:80"
volumes:
- F:\docker:/usr/share/nginx/html

在F:\docker創建一個index.html,隨便輸入個內容,等會訪問測試。

2.執行啟動命令
docker-compose up -d
訪問下 ip+1080可以看到請求到nginx了。

三、下載、制作、上傳鏡像

登錄阿里雲鏡像:
docker login --username=趙曉525 registry.cn-hangzhou.aliyuncs.com
docker tag 12766a6745ee registry.cn-hangzhou.aliyuncs.com/testzx/nginx:0406 本地鏡像打標簽
docker push registry.cn-hangzhou.aliyuncs.com/testzx/nginx:0406 上傳本地鏡像
docker pull registry.cn-hangzhou.aliyuncs.com/testzx/nginx:[鏡像版本號] 拉取容器服務中剛剛上傳的鏡像


制作鏡像

docker run --name some-nginx -p 1080:80 -v f:\docker:/usr/share/nginx/html -d nginx
mkdir dockerfile
vi dockerfile
文件內容:
FROM nginx
RUN echo '這是一個本地構建的nginx鏡像' > /usr/share/nginx/html/index.html
在文件目錄下執行
docker build -t nginx:v3 .
[+] Building 0.8s (4/5)
[+] Building 1.0s (4/5)
[+] Building 1.1s (4/5)
[+] Building 1.3s (5/6)
[+] Building 1.3s (6/6) FINISHED
=> [internal] load build definition from Dockerfile 0.2s
=> => transferring dockerfile: 133B 0.0s
=> [internal] load .dockerignore 0.1s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/nginx:latest 0.0s
=> [1/2] FROM docker.io/library/nginx 0.4s
=> [2/2] RUN echo '這是一個本地構建的nginx鏡像' > /usr/share/nginx/html/index.html 0.5sing to image 0.1s
=> exporting to image 0.1s
=> => exporting layers 0.1s
=> => writing image sha256:813a1b77df54126778c7f8740772cde558b1ec89551e40b6be37b03514d9c63a 0.0s
=> => naming to docker.io/library/nginx:v3 0.0s

Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them

docker 容器連接:
Compose 是用於定義和運行多容器 Docker 應用程序的工具。通過 Compose,您可以使用 YML 文件來配置應用程序需要的所有服務。然后,使用一個命令,就可以從 YML 文件配置中創建並啟動所有服務。
創建一個docker-compose.yml
執行啟動命令
docker-compose up -d
容器遷移:(參考:https://www.cnblogs.com/sunnynic/p/12317711.html)
容器打包成鏡像 # docker commit -m "" -a "" [CONTAINER ID] [新的鏡像名] ,其中-m和-a是可選參數,意思分別是描述和作者
導出鏡像 # docker save -o [新的鏡像名.tar] [新的鏡像名]
拷貝鏡像到目標服務器 # scp src dst
導入鏡像 # sudo docker load -i [新的鏡像名.tar]
運行容器 # docker run


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM