Skip to content

Latest commit

 

History

History
190 lines (150 loc) · 6.63 KB

README.md

File metadata and controls

190 lines (150 loc) · 6.63 KB

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: