Docker 简介
- 基于 Linux
Namespace(隔离)和Cgroups(限制资源) - 核心组件:Client、Daemon、Images、Container、Registry
常用镜像命令
docker image ls # 查看本地镜像
docker pull nginx:latest # 拉取镜像
docker image inspect nginx # 查看详情
docker image rm nginx # 删除镜像
docker image save nginx > nginx.tar # 导出
docker image load < nginx.tar # 导入
docker history nginx # 查看分层
常用容器命令
docker ps [-a] # 查看容器(-a 含已停止)
docker run -d --name nginx nginx # 后台运行
docker exec -it nginx bash # 进入容器
docker inspect nginx # 查看详情
docker logs -f nginx # 查看日志
docker stats nginx # 资源统计
docker stop/start/rm nginx # 停止/启动/删除
docker cp file nginx:/path # 复制文件到容器
常用 run 参数:
-i -t 交互式终端
-d 后台运行
-e 环境变量
-p 8080:80 端口映射
--name 容器名
-v /host:/container 挂载目录
--restart always 自动重启
资源限制:
docker run -d --memory="500m" --memory-swap="600m" nginx
docker run -d --cpus="1.5" nginx
数据持久化
| 方式 | 说明 |
|---|---|
volumes | Docker 管理,保存在 /var/lib/docker/volumes/,推荐 |
bind mounts | 挂载宿主机任意路径 |
tmpfs | 存储在内存,不持久化 |
docker volume create mydata
docker run -d --name nginx --mount src=mydata,dst=/usr/share/nginx/html nginx
网络模式
| 模式 | 说明 |
|---|---|
bridge | 默认,创建独立网络命名空间 |
host | 与宿主机共享网络 |
none | 无网络配置 |
container:name | 与指定容器共享网络 |
| 自定义 | 支持容器名 DNS 发现 |