目錄linux
Docker是一個輕量級的虛擬化技術,其解決了軟件運行環境和配置等不統一的問題。
Docker已逐漸發展成爲一個可持續集成和總體發佈的開放平臺。
Docker的理念:docker
Securely build, share and run any application, anywhereshell
Docker是將與應用相關的全部組件和環境進行封裝,只要宿主機支持Docker,就能夠運行各式各樣的應用,不用額外的環境和配置,以此達到了「一次構建,到處執行」的目標。json
鏡像是模板,容器是根據鏡像構建的一個個實例,它們的關係相似於類和對象。
倉庫是一個存儲、分發各種鏡像的地方。centos
虛擬機在宿主機上利用硬件資源虛擬出一個個操做系統,是徹底獨立的系統。
容器經過Docker Engine直接使用宿主機的內核,不徹底獨立。bash
容器 | 虛擬機 | |
---|---|---|
所屬 | 操做系統層虛擬化 | 硬件層虛擬化 |
佔用資源 | 小 | 大 |
資源利用率 | 高 | 低 |
啓動速度 | 秒級 | 分鐘級 |
官方文檔app
CentOS上安裝Docker社區版網站
yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io
如下操做的環境:CentOS 7ui
systemctl start docker systemctl stop docker systemctl restart docker systemctl status docker systemctl enable docker
docker version docker info docker --help
docker images docker search 鏡像名稱 docker pull 鏡像名稱
docker rmi 鏡像名稱或ID docker rmi $(docker images -q)
因爲鏡像拉取的網站是國外的,其會遇到困難,此時可配置國內的鏡像加速器操作系統
/etc/docker/daemon.json
中寫下以下內容{ "registry-mirrors": [ "https://registry.docker-cn.com" ] }
systemctl daemon-reload systemctl restart docker
docker run -參數 鏡像名稱
docker start 容器名稱或ID docker stop 容器名稱或ID docker restart 容器名稱或ID
docker ps -參數
docker attach 容器名稱或ID #以此方式進入容器中,exit後容器也中止 docker exec -it 容器名稱或ID /bin/bash #以此方式進入容器中,exit後容器不中止
docker exec 容器名稱或ID CMD
docker inspect 容器名稱或ID #-f "{{.層級目錄}}"——詳細查詢 docker top 容器名稱或ID docker logs 容器名稱或ID #-f跟蹤日誌輸出;-t顯示時間戳;--tail+n顯示末尾n條日誌
docker rm 容器名稱或ID docekr rm $(docker ps -q)
docker cp 宿主機文件 容器名稱或ID:/目錄 docker cp 容器名稱或ID:/目錄/文件 宿主機目錄
數據卷的做用是數據持久化+數據共享(宿主機與容器,容器與容器)。
宿主機與容器:
docker run
命令添加參數 -v /宿主機絕對路徑目錄:/容器內目錄容器與容器:
docker run
命令添加參數 --volumes-from 父容器docker commit 容器名稱或ID 新的鏡像名稱 #-m="提交的描述信息",-a="做者"
docker save -o ***.tar 鏡像名稱或ID
docker load -i ***.tar