Docker概述
Docker 是一個開源的應用容器引擎,讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發布,容器是完全使用沙箱機制,相互之間不會有任何介面,更重要的是容器性能開銷極低,
Docker與傳統虛擬機區別

傳統虛擬機(virtual machine)
-
虛擬機,就是在作業系統里面,裝一個軟體,然后通過這個軟體,再模擬一臺甚至多臺“子電腦”出來,“子電腦”和“子電腦”之間,是相互隔離的,互不影響,但占用空間更大,啟動更慢,
-
傳統虛擬機技術是虛擬出一套硬體后,在其上運行一個完整作業系統,在該系統上再運行所需應用行程,
Linux 容器(Linux Containers,縮寫為 LXC)
-
而容器不是模擬一個完整的作業系統,容器只需要軟體作業所需的庫資源和設定,容器內的應用行程直接運行于宿主機的內核,容器內沒有自己的內核,而且也沒有進行硬體虛擬,因此容器要比傳統虛擬機更為輕便,
-
每個容器之間互相隔離,每個容器有自己的檔案系統 ,容器之間行程不會相互影響,能區分計算資源,
docker架構
Docker 使用客戶端-服務器 (C/S) 架構模式,使用遠程API來管理和創建Docker容器,

1、Docker 鏡像(Image)就是一個只讀的模板,可以看作是創建docker容器的模板,
鏡像可以用來創建 Docker 容器,一個鏡像可以創建很多容器,
2、Docker 利用容器(Container)獨立運行的一個或一組應用,容器是用鏡像創建的運行實體,
容器可以被創建、啟動、停止、洗掉、暫停等,每個容器都是相互隔離的,保證安全的平臺,
3、倉庫(Repository)是集中存放鏡像檔案的場所,
一個倉庫注冊服務器(Registry)放著多個倉庫(Repository),每個倉庫中又包含了多個鏡像,每個鏡像有不同的標簽(tag),我 們可以把鏡像發布到倉庫中,需要的時候從倉庫中拉下來就可以了,
docker安裝
鏡像:CentOS-7-x86_64-DVD-1810.iso
一、配置基礎環境
# 1、配置網路:(NAT模式)
vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.100.100
NETMASK=255.255.255.0
GATEWAY=192.168.100.2
DNS1=8.8.8.8
# 2、修改DNS:
vi /etc/resolv.conf
nameserver 8.8.8.8
# 3、重啟網路:
systemctl restart network
# 4、測驗網路:(確保可以上外網)
ping www.baidu.com
# 5、關閉防火墻和selinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vi /etc/selinux/config
SELINUX=disabled
# 6、設定主機名
hostnamectl set-hostname wzg
bash
# 7、更新yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
# 8、安裝需要的工具包
yum install -y yum-utils device-mapper-persistent-data lvm2
# 9、設定阿里源為鏡像倉庫地址
yum-config-manager --add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
二、安裝docker
# 1、洗掉舊版本
yum remove docker docker-client docker-client-latest docker-common \
docker-latest docker-latest-logrotate docker-logrotate docker-engine
# 2、安裝docker
yum install docker-ce docker-ce-cli containerd.io
# 3、查看當前版本
[root@wzg ~]# docker --version
Docker version 20.10.13, build a224086
# 4、卸載docker-ce及其依賴包
yum remove docker-ce
yum remove docker-ce-cli
yum remove docker-selinux
yum remove docker-engine-selinux
# 5、檢查版本
[root@wzg ~]# docker --version
-bash: /usr/bin/docker: No such file or directory
# 6、安裝指定版本的docker-ce
yum install -y docker-ce-19.03.2-3.el7 docker-ce-cli-19.03.2-3.el7 containerd.io
# 7、驗證是否安裝成功
[root@wzg ~]# docker --version
Docker version 19.03.2, build 6a30dfc
# 8、啟動docker
systemctl start docker
# 9、查看docker服務狀態
systemctl status docker
# 10、測驗docker(運行hello-world鏡像)
[root@wzg ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:6d60b42fdd5a0aa8a718b5f2eab139868bb4fa9a03c9fe1a59ed4946317c4318
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
……
#出現上面,說明docker安裝成功
如何卸載docker
# 1、執行卸載命令
yum remove docker-ce docker-ce-cli containerd.io
# 2、卸載后,主機上的鏡像、容器等不會被洗掉,洗掉命令如下:
rm -rf /var/lib/docker
# 管理員必須手動洗掉任何已編輯的組態檔
三、開啟Docker遠程訪問
# 1、設定Docker開機自啟
systemctl enable docker
# 2、以普通用戶管理docker
sudo groupadd docker
useradd wzg
sudo usermod -aG docker wzg
# 3、編輯docker.service單元組態檔
systemctl edit docker.service
# 輸入以下資訊:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
# 4、重新加載systemctl配置
systemctl daemon-reload
# 5、重啟docker
systemctl restart docker
# 6、安裝網路監測工具
yum install -y net-tools
# 7、檢查Docker守護行程是否在所配置的埠上偵聽
[root@wzg ~]# netstat -lntp | grep dockerd
tcp6 0 0 :::2375 :::* LISTEN 16678/dockerd
# 8、在Docker客戶端命令中通過-H選項指定要連接的遠程主機
[root@wzg ~]# docker -H tcp://192.168.100.100:2375 info
Client:
Debug Mode: false
Server:
Containers: 1
Running: 0
……
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/445908.html
標籤:其他
