docker 是什么
- Docker is a tool for running applications in an isolated Environment
- Similar to VM
- App run in same environment
- Just works
- Standard for software deployment
containers
容器是一个应用层的抽象,可以打包代码和依赖。多个容器可以运行在同一台机器并共享一个OS内核,每个容器都是运行在单独的进程中的。
VM
VM是一个物理硬件的一个抽象,把一台服务变成了多个服务。每个VM都是对OS的完整复制,占用空间更大,启动更慢。
pulling nginx image
1 | # 拉取镜像 |
format docker ps
1 | docker ps --format="ID\t{{.ID}}\nNAME\t{{.Names}}\nIMAGE\t{{.Image}}\nPORTS\t{{.Ports}}\nCOMMAND\t{{.Command}}\nCREATED\t{{.CreatedAt}}\nSTATUS\t{{.Status}}\n" |
Volumes
允许宿主机和容器、容器和容器之间相互共享数据包括文件或者文件夹。
1 | docker run --name website -v $(pwd):/usr/share/nginx/html:ro -d -p 8080:80 nginx:latest |
容器之间共享数据
1 | docker run --name website_copy --volumes-from website -d -p 8081:80 nginx |
Dockerfile
Build own image
在项目根目录创建 Dockerfile 文件
1 | FROM nginx:latest |
1 | docker build --tag website:latest . |
构建 user-service-api
1 | FROM node:latest |
编写 .dockerignore
1 | node_modules |
使用缓存,只改变源码的情况下不用重新下载依赖
1 | FROM node:latest |
Alpine
选择镜像tag里包含alpine去构建,会大大的减少镜像体积
Tags and Version
Usage: docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
Docker Registries
注册 hub.docker.com 账号,创建仓库,把本地的镜像通过tag命令指定成远程仓库的名称,然后推送上去。
Docker Inspect
1 | docker inspect name/id |
原文链接: https://alexhuihui.github.io/article/20220404.html
版权声明: 转载请注明出处.