原文地址: 直接訪問html
Docker是一個虛擬環境容器,能夠將應用代碼、環境配置、系統環境等一併打包在一塊兒,生成一個鏡像,而後就能夠發佈到任意平臺上。node
與VM的區別
VM在物理機的操做系統上創建了一箇中間軟件層 hypervisor,利用物理機資源,虛擬出多個硬件資源,這些新的虛擬硬件環境、安裝的操做系統、相應軟件便構成了一臺虛擬機git
而 Docker 對硬件資源,在不一樣docker container上作了隔離,使得每一個docker container擁有不一樣的環境,同時能夠共享硬件資源github
平常使用的基本概念
核心功能簡答介紹:docker
- Docker是C/S模式
- images:docker鏡像,是Docker run的原材料
- container: Docker運行的內容,是獨立存在的
- data volumes: 經過數據掛載的方式,實現數據共享
- network:用戶容器與外部、容器之間的通訊,經常使用的方法有端口映射、link等
使用流程
基本操做
- docker version: 查看基本版本信息,包括client、server
關於鏡像的基本操做
- docker search: 默認在 https://hub.docker.com 中查詢鏡像,固然能夠修改registry
- docker pull: 鏡像拉取
docker pull imageName:version
- docker push: 鏡像提交
- docker images: 查看本地鏡像
- docker rmi: 刪除本地鏡像
- docker build:利用 Dockerfile 製做鏡像,例如
docker build -t newImageName -f dockerFile [contextPath]
- docker commit: 基於運行的 container 製做鏡像
關於容器的基本操做
-
docker runnpm
- 鏡像的運行
- d: 在後臺運行
- v: 用戶數據掛載
- p: 端口映射,實現外部與容器之間的通訊
- rm: 容器推出時,直接刪除容器
- i: 交互式的方式
- t: 在容器中啓動一個終端
-
docker psbash
- 查詢當前存在的容器
- a: 列出全部容器
- q: 僅出 container id
- dock exec: 在容器中執行命名,例如能夠使用
docker exec -it containerId /bin/bash
進入到容器內部
- docker stop: 中止容器的運行
- docker restart: 從新啓動容器的運行
- docker rm: 容器刪除
DockerFile
# 指定基礎鏡像
FROM NODE:10.12
## 從本地 copy 文件到鏡像中
COPY ./ /data/my-node/
## 切換 container 的工做目錄
WORKDIR /data/my/node
## 執行命令
RUN npm install
## 容器的啓動命名
ENTRYPOINT ["node", "./index.js"]