Docker 架構
參考:https://www.runoob.com/docker/docker-architecture.html
Docker 使用用戶端-伺服器 (C/S) 架構模式,使用遠端API來管理和建立Docker容器。
Docker 容器通過 Docker 鏡像來建立。
容器與鏡像的關系類似于面向對象程式設計中的對象與類。
Docker | 面向對象 |
---|---|
容器 | 對象 |
鏡像 | 類 |

Docker 鏡像(Images) | Docker 鏡像是用于建立 Docker 容器的模闆。 |
Docker 容器(Container) | 容器是獨立運作的一個或一組應用。 |
Docker 用戶端(Client) | Docker 用戶端通過指令行或者其他工具使用 Docker API (https://docs.docker.com/reference/api/docker_remote_api) 與 Docker 的守護程序通信。 |
Docker 主機(Host) | 一個實體或者虛拟的機器用于執行 Docker 守護程序和容器。 |
Docker 倉庫(Registry) | Docker 倉庫用來儲存鏡像,可以了解為代碼控制中的代碼倉庫。 Docker Hub(https://hub.docker.com) 提供了龐大的鏡像集合供使用。 |
Docker Machine | Docker Machine是一個簡化Docker安裝的指令行工具,通過一個簡單的指令行即可在相應的平台上安裝Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。 |
下面以安裝nginx為示例,本文章目的是:主要是有時忘記了docker指令,可以友善檢視。
搜尋鏡像:
docker search nginx
拉取鏡像
docker pull nginx
啟動容器:
docker start nginx
停止容器:
docker stop nginx
删除容器:
docker rm nginx
如果要重新載入 NGINX 可以使用以下指令發送 HUP 信号到容器:
$ docker kill -s HUP container-name
重新開機 NGINX 容器指令:
$ docker restart container-name
檢視運作中的容器清單:
docker ps
檢視所有容器清單:
docker ps -a
檢視安裝的鏡像:
docker images docker images nginx
容器重命名:
docker rename 原容器名 新容器名
進入容器nginx: nginx替換成xx容器名稱即可
docker exec -it nginx /bin/bash
輸入exit 可以跳出容器。
鏡像和容器的導入與導出:
https://www.jianshu.com/p/4e862a2a2d03
下面以安裝nginx為例:
1、查找 Docker Hub 上的 nginx 鏡像
docker search nginx
2、拉取鏡像
docker pull nginx
3、等待下載下傳完成後,我們就可以在本地鏡像清單裡查到 REPOSITORY 為 nginx 的鏡像
[email protected]:~/nginx$ docker images nginx REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 555bbd91e13c 3 days ago 182.8 MB
以下指令使用 NGINX 預設的配置來啟動一個 Nginx 容器執行個體:
$ docker run --name runoob-nginx-test -p 8081:80 -d nginx
- runoob-nginx-test 容器名稱。
- the -d 設定容器在在背景一直運作。
- the -p 端口進行映射,将本地 8081 端口映射到容器内部的 80 端口。
執行以上指令會生成一串字元串,類似 6dd4380ba70820bd2acc55ed2b326dd8c0ac7c93f68f0067daecad82aef5f938,這個表示容器的 ID,一般可作為日志的檔案名。
我們可以使用 docker ps 指令檢視容器是否有在運作:
$ docker ps CONTAINER ID IMAGE ... PORTS NAMES 6dd4380ba708 nginx ... 0.0.0.0:8081->80/tcp runoob-nginx-test
PORTS 部分表示端口映射,本地的 8081 端口映射到容器内部的 80 端口。
在浏覽器中打開 http://127.0.0.1:8081/,效果如下:
需要更多詳細指令,可以參考:https://www.runoob.com/docker/docker-tutorial.html
Docker 指令大全:
容器生命周期管理
- run
- start/stop/restart
- kill
- rm
- pause/unpause
- create
- exec
容器操作
- ps
- inspect
- top
- attach
- events
- logs
- wait
- export
- port
容器rootfs指令
- commit
- cp
- diff
鏡像倉庫
- login
- pull
- push
- search
本地鏡像管理
- images
- rmi
- tag
- build
- history
- save
- load
- import
info|version
- info
- version