目錄
一.docker概述
1.docker與虛擬機區別
2.Linux 六大命名空間
3.Docker 的核心技術及概念
二.docker部署安裝
三.docker常用命令
1.搜索鏡像
2.獲取鏡像
3.查看鏡像信息
4.添加鏡像標簽
5.刪除鏡像
6.存出與載入鏡像
7.上傳鏡像
8.創建容器
9.查看容器狀態
10.容器的啟動、關閉與重啟
11.創建并啟動容器
12.進入容器
13.文件復制
14.容器導出與導入
15.刪除容器
一.docker概述
1.docker與虛擬機區別
特性 | Docker 容器 | 虛擬機 |
---|---|---|
啟動速度 | 秒級 | 分鐘級 |
計算能力損耗 | 幾乎無 | 損耗 50%左右 |
性能 | 接近原生 | 弱于 |
系統支持量(單機) | 上千個 | 幾十個 |
隔離性 | 資源隔離/限制 | 完全隔離 |
容器化的優勢
-
靈活:即使是最復雜的應用也可以集裝箱化。
-
輕量級:容器利用并共享主機內核。
-
可互換:可以即時部署更新和升級。
-
便攜式:可以在本地構建,部署到云,并在任何地方運行。
-
可擴展:可以增加并自動分發容器副本。
-
可堆疊:可以垂直和即時堆疊服務。
2.Linux 六大命名空間
命名空間 | 縮寫 | 作用 | 效果 |
---|---|---|---|
MNT | 掛載 | 文件系統隔離 | 每個命名空間可以有自己的文件系統掛載點 |
NET | 網絡 | 網絡資源隔離 | 每個命名空間可以有自己的網絡棧,包括網絡接口、路由表等 |
PID | 進程 | 進程號隔離 | 每個命名空間有自己獨立的 PID 編號空間 |
IPC | 間通 | 進程間通信隔離 | 每個命名空間有自己獨立的 System V IPC 和 POSIX 消息隊列 |
UTS | 主機 | 主機名、域名隔離 | 每個命名空間可以有自己的主機名和域名 |
USER | 用戶 | 用戶名、組名隔離 | 每個命名空間可以有自己的用戶和組 ID 映射 |
3.Docker 的核心技術及概念
Docker 容器本質上是宿主機的一個進程,通過以下技術實現資源隔離和限制:
-
Namespace:實現資源隔離。
-
Cgroup:實現資源限制。
-
寫時復制技術(Copy-on-Write):實現高效的文件操作。
docker核心概念:鏡像、容器、鏡像倉庫
二.docker部署安裝
1.關閉防火墻
systemctl stop firewalld.service
setenforce 0
2.安裝依賴包
yum install -y yum-utils device-mapper-persistent-data lvm2
3.設置阿里源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.安裝docker-ce并設置開機自啟動
yum install -y docker-ce docker-ce-cli containerd.io
systemctl start docker.service
systemctl enable docker.service
三.docker常用命令
1.搜索鏡像
docker search 關鍵字
2.獲取鏡像
docker pull 倉庫名稱[:標簽]
3.查看鏡像信息
docker images
docker inspect 鏡像ID號(查看鏡像詳細信息)
4.添加鏡像標簽
docker tag 名稱:[標簽] 新名稱:[新標簽]
如:docker tag nginx:latest nginx:web
5.刪除鏡像
-
docker rmi 倉庫名稱:標簽
:刪除指定標簽的鏡像 -
docker rmi 鏡像ID號
:徹底刪除鏡像
如:docker rmi nginx:web
6.存出與載入鏡像
存出鏡像:
docker save -o 存儲文件名 存儲的鏡像
如:docker save -o nginx nginx:latest
載入鏡像:
docker load < 存出的文件 或docker load -i 存出的文件
如:docker load < nginx
7.上傳鏡像
docker push 用戶名/鏡像名稱:新標簽
8.創建容器
-
格式:
docker create [選項] 鏡像
-
常用選項:
-
-i
:開啟標準輸入接受用戶輸入命令。 -
-t
:分配一個偽終端 tty。 -
-it
:合起來實現和容器交互的作用,運行一個交互式會話 shell。
-
如:docker create -it nginx:latest /bin/bash
9.查看容器狀態
docker ps -a
10.容器的啟動、關閉與重啟
docker start/stop/restart 容器ID
11.創建并啟動容器
docker run [選項] 鏡像 [命令]
docker run -itd image_name:tag [/bin/bash.....] 下載并將鏡像運行為容器(-i 讓容器可以接受宿主機的指令、-t 為容器分配一個偽終端,讓用戶可以"登錄"進容器,-d 分配一個守護進程,這樣可以讓容器運行時不占用前臺終端)
12.進入容器
-
docker exec -it 容器ID/名稱 /bin/bash
如:docker exec -it 2592d3fad0fb /bin/bash
13.文件復制
-
復制到容器:
echo abc123 > ~/test.txt docker cp ~/test.txt 2592d3fad0fb:/opt/
-
從容器復制到主機:
docker cp 2592d3fad0fb:/opt/test.txt ~/abc123.txt
14.容器導出與導入
導出:
? docker export 2592d3fad0fb > centos7.tar
?導入:
? cat centos7.tar | docker import - centos7:test
?
15.刪除容器
docker rm [-f] 容器ID/名稱
-
刪除已終止容器:
docker stop 2592d3fad0fb docker rm 2592d3fad0fb
-
強制刪除運行容器:
docker rm -f 2592d3fad0fb