Docker
使用的是版本 1.13 或更高版本。
Docker - Docker | 中文网 | Doc | 中文文档 | Github | Docker Success Center | Open Source | Hub | Store | 中文社区 | Cheat Sheet
Open Source
Play with Docker - Page | Github 体验到在云中拥有免费的Alpine Linux虚拟机,您可以在其中构建和运行Docker容器,甚至可以使用Swarm模式等Docker功能创建集群。
awesome-docker - Page | Github Docker资源和项目的精选列表
Moby - Page | Github Docker创建的一个开源项目,用于启用和加速软件容器化。 它提供了工具包组件的“乐高集”,用于将它们组装到基于容器的自定义系统中的框架,以及所有容器爱好者和专业人员实验和交换想法的地方。组件包括容器构建工具,容器注册表,编排工具,运行时等,这些可以与其他工具和项目一起用作构建块。
Docker Official Images - Page | 示例 | Github | @Docker-Library Docker 官方 Images
oracle/docker-images - Page | Github Docker配置,图像以及Dockerfiles for Oracle产品和项目示例的官方来源
jupyter/docker-stacks - Page | Github 包含Jupyter应用程序的可立即运行的Docker镜像
NVIDIA/nvidia-docker - Github 利用NVIDIA GPU构建和运行Docker容器
Docker image
Nextcloud 所有数据的安全之家。 根据您的条款,从任何设备访问和共享您的文件,日历,联系人,邮件等。
Docker 常用命令
基础
docker info
Docker 信息docker -v
/docker --version
查看当前安装的 Docker 版本docker run hello-world
对环境进行快速的测试运行
镜像
docker search
从网络搜索 Docker 镜像docker images -a
显示此机器上的所有镜像docker images
/docker image ls
查看已构建的镜像docker build -t <name>
使用此目录的 Dockerfile 创建镜像docker run -p 4000:80 <name>
运行端口 4000 到 90 的“友好名称”映射docker run -d -p 4000:80 <name>
分离模式下运行docker run <username>/<repository>:<tag>
运行镜像库中的镜像docker rmi <imagename>
从此机器中删除指定的镜像docker rmi $(docker images -q)
从此机器中删除所有镜像
容器
docker container ls
/docker ps
查看所有正在运行的容器的列表docker ps -a
查看所有容器的列表,甚至包含未运行的容器docker inspect <hash>
查看容器所有的相关信息docker rm <hash>
从此机器中删除指定的容器docker rm $(docker ps -a -q)
从此机器中删除所有容器docker stop <hash>
平稳地停止指定的容器docker kill <hash>
强制关闭指定的容器
账户 Hub
docker login
使用您的 Docker 凭证登录此 CLI 会话docker tag <username>/<repository>:<tag>
标记<image>
以上传到镜像库docker push <username>/<repository>:<tag>
将已标记的镜像上传到镜像库
服务
docker swarm init
需要先运行此命令,然后才能使用docker stack deploy
命令docker stack ls
列出此 Docker 主机上所有正在运行的应用docker stack deploy -c <composefile> <appname>
运行指定的 Compose.yml 文件docker stack services <appname>
列出与应用关联的服务docker stack ps <appname>
列出与应用关联的正在运行的容器docker stack rm <appname>
清除应用
swarm 集群
Dockerfile 命令
Dockerfiles - blog | Github 各种 Dockerfiles
命令 | 用途 |
---|---|
FROME | base image |
RUN | 执行命令 |
ADD | 添加文件 |
COPY | 拷贝文件 |
CMD | 执行命令 |
EXPOSE | 暴露来端口 |
WORKDIR | 指定路径 |
MAINTAINER | 维护者 |
ENV | 设定环境变量 |
ENTRYPOINT | 容器入口 |
USER | 指定用户 |
VOLUME | mount point |
Dockerfile 示例:
# 将官方 Python 运行时用作父镜像
FROM python:2.7-slim
# 将工作目录设置为 /app
WORKDIR /app
# 将当前目录内容复制到位于 /app 中的容器中
ADD . /app
# 安装 requirements.txt 中指定的任何所需软件包
RUN pip install -r requirements.txt
# 使端口 80 可供此容器外的环境使用
EXPOSE 80
# 定义环境变量
ENV NAME World
# 在容器启动时运行 app.py
CMD ["python", "app.py"]
docker-compose.yml 命令
Compose file versions and upgrading | docker-compose.yml 语法说明
version:"3" # 此版本具有较好的兼容性
services:
# 将该镜像的实例作为服务 `web` 运行(`web` 为服务的名称,可自定义)
web:
# 将 username/repo:tag 替换为您的名称和镜像详细信息
image: username/repository:tag # 从镜像库中拉取镜像
deploy:
replicas:5 # 为该镜像创建五个实例
resources:
# 每个实例限制最多使用的 cpus 和 memory
limits:
cpus:"0.1"
memory:50M
# 如果某个容器发生故障,立即重启容器
restart_policy:
condition: on-failure
# 将主机上的端口 80 映射到 `web` 的端口 80
ports:
- "80:80"
# 指示 `web` 容器通过负载均衡的网络 `webnet` 共享端口 80。(在内部,容器自身将在临时端口发布到 `web` 的端口 80。)
networks:
- webnet
networks:
webnet: