Linux容器——Docker(一)之 基本使用


1.Docker概念

  a.定義:Docker 是一個開源的應用容器引擎,基於 Go 語言 並遵從 Apache2.0 協議開源

  b.意義:Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化

  c.版本:Docker 從 17.03 版本之后分為 CE(Community Edition: 社區版) 和 EE(Enterprise Edition: 企業版),我們用社區版就可以了

  d.作用:

    1)提供一次性的環境:比如,本地測試他人的軟件、持續集成的時候提供單元測試和構建的環境

    2)提供彈性的雲服務:因為 Docker 容器可以隨開隨關,很適合動態擴容和縮容

    3)組建微服務架構:通過多個容器,一台機器可以跑多個服務,因此在本機就可以模擬出微服務架構

 

 

2.安裝Docker(Win7)

  a.訪問 http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ 下載最新版 DockerToolbox,並安裝

    注:若已安裝Git,則不用再選擇Git組件安裝

  b.雙擊 Docker QuickStart 圖標來啟動 Docker Toolbox 終端

    注:若Docker未檢測到Git安裝目錄,則需要選擇 Git 的 bin 目錄下的 bash.exe 文件

  c.若出現 boot2docker.iso 一直無法下載的情況

    1)訪問 https://github.com/boot2docker/boot2docker/releases/ 手動下載最新版的 boot2docker.iso

    2)將下好的 boot2docker.iso 復制到 C:\Users\Administrator\.docker\machine\cache 下

    3)雙擊 Docker QuickStart 啟動 Docker Toolbox 終端

 

   d.執行命令 docker version 驗證是否安裝成功

#查看Docker版本
$ docker version

 

 

 

 

 

3.Docker 容器使用

  a.image定義:image 文件可以看作是容器的模板。Docker 把應用程序及其依賴,打包在 image 文件里面,並根據 image 文件生成容器的實例。同一個 image 文件,可以生成多個同時運行的容器實例。

  b.查找鏡像:訪問 https://hub.docker.com/ 查找可用鏡像

 

  c.基本指令:

    1)列出本地主機上的鏡像

# 列出本機的所有 image 文件。
$ docker image ls
$ docker images

      ·REPOSITORY:表示鏡像的倉庫源

      ·TAG:鏡像的標簽,代表這個倉庫源的不同個版本

      ·IMAGE ID:鏡像ID

      ·CREATED:鏡像創建時間

      ·SIZE:鏡像大小

 

    2)刪除本地主機上的鏡像

# 刪除 image 文件
$ docker image rm ubuntu:20.04
$ docker rmi ubuntu:20.04

 

    3)下載鏡像到本地

#拉取 image 文件到本地
$ docker pull ubuntu:20.04

 

    4)根據鏡像啟動容器

#根據 image 啟動容器
$ docker run -it ubuntu:20.04 /bin/bash

      ·-i: 交互式操作

      ·-t: 終端

      ·ubuntu:20.04:這是指用 ubuntu 20.04 版本鏡像為基礎來啟動容器

      ·/bin/bash:放在鏡像名后的是命令,這里我們希望有個交互式 Shell,因此用的是 /bin/bash

 

    5)查看所有的容器

#查看正在運行的容器
$ docker ps
#查看所有容器,包括未運行的
$ docker ps -a

      ·CONTAINER ID: 容器 ID。

      ·IMAGE: 使用的鏡像。

      ·COMMAND: 啟動容器時運行的命令。

      ·CREATED: 容器的創建時間。

      ·STATUS: 容器狀態。

        ·狀態有7種: created(已創建) restarting(重啟中) running(運行中) removing(遷移中) paused(暫停) exited(停止) dead(死亡)

      ·PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

      ·NAMES: 自動分配的容器名稱。

 

    6)啟動一個已停止的容器

#啟動一個已停止的容器
$ docker start f69dbd3c27c4

 

    7)停止一個容器

#停止一個容器
$ docker stop f69dbd3c27c4

 

    8)重啟一個容器

#重啟一個容器
$ docker restart f69dbd3c27c4

 

    9)后台啟動運行一個

#后台啟動運行一個容器
$ docker run -itd --name ubuntu-test ubuntu:20.04 /bin/bash

 

    10)進入容器

#進入容器(如果從這個容器退出,會導致容器的停止)
$ docker attach 1e560fca3906 
#進入容器(如果從這個容器退出,不會導致容器的停止)(推薦
$ docker exec -it 243c32535da7 /bin/bash

 

    11)刪除容器

#刪除容器
$ docker rm -f 1e560fca3906

 

    12)導出容器

#導出容器
$ docker export a8bf89afcbb6 > ./ubuntu.tar

 

    13)導入容器快照(導成鏡像 image)

#導入容器快照
$ cat ./ubuntu.tar | docker import - test/ubuntu:v1
#導入容器快照("./ubuntu.tar"可為路徑,也可為url)
$ docker import ./ubuntu.tar test/ubuntu:v1

 

    14)更新鏡像(提交容器副本成鏡像 image)

#提交容器副本成鏡像
$ docker commit -m="this is content for commiting" -a="this is author" d66cef6d68bf runoob/ubuntu:v2

      ·-m:提交的描述信息

      ·-a:指定鏡像作者

      ·d66cef6d68bf:容器 ID

      ·runoob/ubuntu:v2:指定要創建的目標鏡像名

 

 

4.參考文檔:

  https://www.runoob.com/docker/windows-docker-install.html

  http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html


免責聲明!

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



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