Docker-Windows常用命令


Docker-Windows常用命令

2020-04-19

參考鏈接:Docker初識

下載安裝

安裝完成后,若需要更改默認鏡像位置,在設置里更改。更改設置中的配置,都需要重啟,很費事。

安裝后,可以運行一下hello-world這個倉庫,檢查一下是否成功。

docker pull hello-world
docker run hello-world

配置阿里雲鏡像加速

國內訪問Docker的速度慢,有兩種解決方案:配置代理或者使用阿里雲的鏡像。阿里雲的速度更有保證。

在阿里雲的控制台,搜索容器鏡像服務,然后在鏡像中心--鏡像加速器。復制一下我的加速器網址,粘貼到"registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"], 即可。

檢查加速器配置是否生效,docker info,如果從結果中看到了Registry Mirrors: https://xxxx,說明配置成功。

安裝Ubuntu鏡像

我們從Doker Hub獲取鏡像。

先搜索Ubuntu鏡像。docker search ubuntu。返回的第一個就是Ubuntu的官方鏡像。

2. docker pull

docker pull [選項] ['Docker Registry'地址 [:端口號] /] 鏡像名 [:標簽]

地址的格式一般是<域名/IP>[:端口號]。默認地址是 Docker Hub,但我們已經將其修改為阿里雲的加速器。

docker pull training/webapppythonapp

docker pull busybox :是一個集成了三百多個最常用Linux命令和工具的軟件,簡化的Linux系統

docker pull ubuntu 即可將鏡像拉到本地。

3. docker image

使用 docker image ls 查看所有本地鏡像;

刪除鏡像docker image rm xx/xx即可

查看容器狀態

docker ps只返回正在運行的容器

docker ps -a 查看所有容器(運行&沒有運行)

啟動容器

  • 基於鏡像(image)新建一個容器並啟動,
  • 將在終止狀態(stopped)的容器重新啟動。

方式一:docker run

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

COMMAND: 容器啟動后進入容器中要執行的命令.

OPTIONS(常用選項)

  • -d:讓 Docker 在后台運行而不是直接把執行命令的結果輸出在當前宿主機下
  • -t:選項讓Docker分配一個偽終端(pseudo-tty)並綁定到容器的標准輸入上
  • -i:則讓容器的標准輸入保持打開。
  • --name:為容器命名
  • -v:創建數據卷,就是主機和docker之間的映射關系。
  • -p:綁定端口

舉例1:docker run -p 8000:5000 –-name web training/webapp

-p綁定本地8000端口,映射到容器的5000端口。也可以綁定多個端口。

新建了一個名為web,基於training/webapp鏡像的容器。

在本地瀏覽器中,打開localhost:8000即可查看輸出。

舉例2:后台運行-d

docker run –d –p 8000:5000 training/webapp

舉例3:交互運行

啟動一個 bash 終端,允許用戶進行交互。

docker run -t -i CONTAINER [CONTAINER...] /bin/bash

比如 docker run -t -i centos /bin/bash

方式二:(1)docker stop

通過 docker ps可得到CONTAINER ID,直接使用這個ID即可。

docker stop 10fc ,只用ID的一部分也可以。

(2)docker start

啟動一個停止的容器,和stop命令一樣,可以使用ID的一部分即可。

注意這里只能啟動!不能打開交互式bash

(3)docker exec -i -t CONTAINER /bin/bash

打開交互式窗口。針對已經啟動,正在后台運行的容器。這是條很實用的命令。

重啟和刪除

docker restart

重啟容器。

docker rm

刪除容器前,請先關閉容器

查看日志

docker logs [OPTIONS] CONTAINER

options:
        --details        顯示更多的信息
    -f, --follow         跟蹤實時日志
        --since string   顯示自某個timestamp之后的日志,或相對時間,如42m(即42分鍾)
        --tail string    從日志末尾顯示多少行日志, 默認是all
    -t, --timestamps     顯示時間戳
        --until string   顯示自某個timestamp之前的日志,或相對時間,如42m(即42分鍾)

主機和容器間文件互傳

docker cp CONTAINER:/home/user d:/xxx

這是從容器向主機拷貝文件。容器的路徑寫法一定要加上ID

如果把順序反過來,就是主機向容器拷貝文件。

不僅能拷貝文件,文件夾也可以

數據卷

相當於把主機上的盤掛載到容器上,所以有以下優點:

  1. 數據卷 可以在容器之間共享和重用
  2. 對 數據卷 的修改會立馬生效
  3. 對 數據卷 的更新,不會影響鏡像
  4. 數據卷 默認會一直存在,即使容器被刪除
  5. 如果在本機修改代碼,在容器中也能看到。方便將本地主機的代碼運行在容器中。

設置方法如下:

  • 在設置中打開Shared Drives
  • 設置本地和容器的掛載目錄。

docker run -v f:/docker:/opt/docker ubuntu
主機掛載點是f:/docker,容器掛載點是/opt/docker

使用阿里雲的鏡像

我們以配置PHP開發環境為例

下載阿里雲的lamp鏡像

docker pull registry.cn-hangzhou.aliyuncs.com/itsource/centos-lamp:[鏡像版本號]

  • registry.cn-hangzhou.aliyuns.com/itsource:Docker Registry地址
  • centos-lamp:鏡像名
  • 鏡像版本號就是TAG(標簽)的值

創建lamp容器並運行

docker run -itd -p 80:80 -p 3306:3306 --name lamp --privileged=true -v D:/www/default:/data/wwwroot/default ec258725b54b /usr/sbin/init

  • -p 分配了兩個端口
  • --privileged=true 讓container內的root擁有真正的root權限
  • ec25... 這是pull下來的鏡像的ID

制作本地鏡像

docker commit -a "author-name" -m "message" ID Name:版本

docker commit有些選項:

  • -a :提交的鏡像作者;
  • -m :提交時的說明文字;
  • -p :在commit時,將容器暫停。

導出

docker save ID -o d:/xxx/centos-lamp-v2.tar

加載本地鏡像文件

docker load -i d:/xxx/centos-lamp-v2.tar


免責聲明!

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



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