1 . 對docker的理解:
Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然后發布到任何流行的 Linux或Windows 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
一個完整的Docker有以下幾個部分組成:
- DockerClient客戶端
- DockerClient客戶端
- Docker Image鏡像
- DockerContainer容器
Docker 使用客戶端-服務器 (C/S) 架構模式,使用遠程API來管理和創建Docker容器。Docker 容器通過 Docker 鏡像來創建。容器與鏡像的關系類似于面向對象編程中的對象與類。
Docker | 面向對象 |
---|---|
容器 | 對象 |
鏡像 | 類 |
Docker采用 C/S架構 Docker daemon 作為服務端接受來自客戶的請求,并處理這些請求(創建、運行、分發容器)。 客戶端和服務端既可以運行在一個機器上,也可通過 socket 或者RESTful API 來進行通信。
docker的優點:
- 輕量級:所有容器在一臺機器上共享同一個操作系統內核,這樣他們立即開始,并更有效地利用內存。Image 是從分層文件系統的構建,這樣他們能夠共享公共文件,使得磁盤使用率和 Image 的下載更加高效。
- 開放:Docker 容器是基于開發的標準,允許容器運行在主流的 Linux 發布版和 Microsoft 操作系統作為所有的基礎設施。
- 安全:容器使得應用程序彼此隔離,而基礎架構同時為應用程序提供了額外的保護層。
Docker 與 虛擬機的區別
- 每個虛擬機都包括應用程序、必要的二進制文件和庫以及一個完整的客戶操作系統(Guest OS),盡管它們被分離,它們共享并利用主機的硬件資源,將近需要十幾個 GB 的大小。
- 容器包括應用程序及其所有的依賴,但與其他容器共享內核。它們以獨立的用戶空間進程形式運行在主機操作系統上。他們也不依賴于任何特定的基礎設施,Docker 容器可以運行在任何計算機上,任何基礎設施和任何云上。
2 . docker部署
1 . 安裝docker和相關依賴性
在官網進行下載:https://docs.docker.com/
安裝docker,同時還會自動安裝其他依賴軟件,需要提前設置好系統yum源,可以使用7.3或者7.5的鏡像源
yum install docker-ce.x86_64 docker-ce-cli.x86_64 containerd.io.x86_64 container-selinux.noarch -y
2.打開docker服務
systemctl start docker
3 . 安裝bash等相關安裝包,當使用docker的時候,發現可以成功補齊。
yum install -y bash-*
4 . 安裝成功之后查看docker信息
系認會自動產生一個docker網絡接口
3 . docker簡單的用法
1 . docker的一些常用命令:(以ubuntu鏡像為模板)
docker load -i ubuntu.tar | 導入鏡像 |
---|---|
docker run -it --name vm1 ubuntu | 創建容器 |
docker ps | 查看容器狀態 |
docker ps -a | 查看容器狀態(包括不活躍的容器) |
docker images | 查看已導入的所有鏡像 |
docker attach vm1 | 連接容器 |
docker top vm1 | 查看容器進程 |
docker logs vm1 | 查看容器指令輸出 -f 參數可以實時查看 |
docker inspect vm1 | 查看容器詳情 |
docker stats vm1 | 查看容器資源使用率 |
docker diff vm1 | 查看容器修改 |
docker start/stop vm1 | 開啟/停止 容器 |
docker kill vm1 | 強制關閉容器 |
docker restart vm1 | 重啟容器 |
docker pause/unpause vm1 | 暫停/恢復容器 |
docker rm vm1 | 刪除容器 |
docker rmi ubuntu | 刪除鏡像 |
docker version | 查看docker安裝版本信息 |
docker info | 顯示 Docker 系統信息,包括鏡像和容器數 |
2 . docker 對鏡像的所有操作命令
[root@docker ~]# docker image
build import load prune push save
history inspect ls pull rm tag
3 . docker 對容器的所有操作命令
[root@docker ~]# docker container
attach diff kill port rm stop wait
commit exec logs prune run top
cp export ls rename start unpause
create inspect pause restart stats update
4 . 運行一個簡單的容器
docker load -i game2048.tar # 導入鏡像
docker run -d --name vm1 -p 80:80 game2048 # 運行容器 -d 是打入后臺
--name 是給容器的命名 -p作端口預設 物理機端口:docker 端口
docker ps # 查看運行的容器
瀏覽器訪問查看運行結果: