Dokcer入門雜記


1、Docker基礎

1.1 什麼是Docker

Docker是一個輕量級的虛擬化技術,其解決了軟件運行環境和配置等不統一的問題。
Docker已逐漸發展成爲一個可持續集成和總體發佈的開放平臺。
Docker的理念:docker

Securely build, share and run any application, anywhereshell

Docker是將與應用相關的全部組件和環境進行封裝,只要宿主機支持Docker,就能夠運行各式各樣的應用,不用額外的環境和配置,以此達到了「一次構建,到處執行」的目標。json

1.2 Docker三要素

  • 鏡像 Image
  • 容器 Container
  • 倉庫 Registry

鏡像是模板,容器是根據鏡像構建的一個個實例,它們的關係相似於類和對象。
倉庫是一個存儲、分發各種鏡像的地方。centos

1.3 對比虛擬機

images

虛擬機在宿主機上利用硬件資源虛擬出一個個操做系統,是徹底獨立的系統。
容器經過Docker Engine直接使用宿主機的內核,不徹底獨立。bash

容器 虛擬機
所屬 操做系統層虛擬化 硬件層虛擬化
佔用資源
資源利用率
啓動速度 秒級 分鐘級

1.4 Docker安裝

官方文檔app

CentOS上安裝Docker社區版網站

1. 使用Docker存儲庫安裝
yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
2. 設置穩定的存儲庫
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
3. 安裝Docker-ce
yum install docker-ce docker-ce-cli containerd.io

2、Docker經常使用命令

如下操做的環境:CentOS 7ui

2.1 基本操做

1. Docker的啓動、中止、重啓、狀態、設置開機自啓:
systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl status docker
systemctl enable docker
2. Docker的版本信息、概要信息、幫助命令:
docker version
docker info
docker --help

2.2 鏡像相關

1. 查看鏡像、搜索鏡像、拉取鏡像:
docker images
docker search 鏡像名稱
docker pull 鏡像名稱
2. 刪除鏡像、刪除全部鏡像:
docker rmi 鏡像名稱或ID
docker rmi $(docker images -q)
3. 鏡像加速器:

因爲鏡像拉取的網站是國外的,其會遇到困難,此時可配置國內的鏡像加速器操作系統

  • /etc/docker/daemon.json中寫下以下內容
{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ]
}
  • 重啓docker服務
systemctl daemon-reload
systemctl restart docker

2.3 容器相關

1. 建立容器,如下爲參數:
  • -i 交互式運行容器
  • -t 給容器分配一個僞終端
  • -d 以守護進程的方式運行(後臺運行)
  • -p 分配端口——宿主機端口:容器端口
  • -e 添加環境變量
  • --name 自定義容器名稱
docker run -參數 鏡像名稱
2. 容器啓動、中止、重啓:
docker start 容器名稱或ID
docker stop 容器名稱或ID
docker restart 容器名稱或ID
3. 查看容器,若無參數則查看正在運行中的容器:
  • -a 查看全部容器
  • -f status=exited 查看已中止的容器
docker ps -參數
4. 進入容器:(退出容器:ctrl+D或exit,退出但不中止容器:ctrl+P+Q)
docker attach 容器名稱或ID #以此方式進入容器中,exit後容器也中止
docker exec -it 容器名稱或ID /bin/bash #以此方式進入容器中,exit後容器不中止
5. 在容器中執行命令並直接返回到宿主機:
docker exec 容器名稱或ID CMD
6. 查看容器內部細節、查看容器內部進程、查看容器日誌:
docker inspect 容器名稱或ID #-f "{{.層級目錄}}"——詳細查詢
docker top 容器名稱或ID
docker logs 容器名稱或ID #-f跟蹤日誌輸出;-t顯示時間戳;--tail+n顯示末尾n條日誌
7. 刪除容器、刪除全部容器:
docker rm 容器名稱或ID
docekr rm $(docker ps -q)
8. 從宿主機拷貝文件到容器中,反之:
docker cp 宿主機文件 容器名稱或ID:/目錄
docker cp 容器名稱或ID:/目錄/文件 宿主機目錄

2.4 其餘

2.4.1 數據卷

數據卷的做用是數據持久化+數據共享(宿主機與容器,容器與容器)。
宿主機與容器:

  • docker run命令添加參數 -v /宿主機絕對路徑目錄:/容器內目錄
  • 容器中止退出後,宿主機修改數據仍同步
  • -v /目錄:/目錄:ro(修改權限,read only表示僅可在宿主機上進行寫操做)

容器與容器:

  • docker run命令添加參數 --volumes-from 父容器
  • 容器之間配置信息的傳遞,數據卷的生命週期一直持續到沒有容器使用爲止
  • 還可用Dockerfile添加數據卷

2.4.2 遷移與備份

1. 提交容器副本成爲一個新的鏡像:
docker commit 容器名稱或ID 新的鏡像名稱 #-m="提交的描述信息",-a="做者"
2. 鏡像備份:
docker save -o ***.tar 鏡像名稱或ID
3. 恢復鏡像:
docker load -i ***.tar
相關文章
相關標籤/搜索