docker

作者: eleven_a1dc | 来源:发表于2019-08-16 16:02 被阅读0次

容器的概念

优势

  1. 灵活: 即使是最复杂的应用也能被容器化
  2. 轻量:
  3. 你能即时的部署更新,升级
  4. 你能本地build, 部署在云端,运行在任何地方
  5. 可扩展的: 你能增长并且自动的分布 容器副本

Images and containers

A container launched by running an image.
image 是一个可执行的包,包含运行应用程序所需的所有内容 - 代码,运行时间,库,环境变量和配置文件。


containers

containers

Dockerfile
Dockerfile 定义了在你的容器内环境中发生的事。对网络接口和磁盘驱动器等资源的访问在此环境中进行虚拟化,该环境与系统的其他部分隔离,因此您需要将端口映射到外部世界,并具体说明要“复制”到哪些文件那个环境。但是,执行此操作后,您可以预期此Dockerfile中定义的应用程序的构建在其运行的任何位置都会完全相同。
Docker 能够根据从Dockerfile文件读取的指令来自动构建images.
Dockerfile是一个文本文件。它包含了用户在命令行能够调用的所有命令去装配一个image。

使用

docker build 命令从Dockerfile 和一个上下文来构 是建image. 上下文指的是一系列文件,PATH 或者是URLPATH是你的本地文件系统的目录。URL 是 git 仓库地址。
上下文可以被递归处理。 所以PATH可以包含子目录

FROM

必须在开头位置,只有一个

RUN

RUN ["executable", "param1", "param2"]

CMD

格式
CMD ["executable","param1","param2"]
Dockerfile 里只能有一个CMD 命令,如果有多个,那最后那个会起效果。

docker attach
docker attach [OPTIONS] CONTAINER
attach 容器的id 或者名字
stop 容器 ,使用CTRL-c 发送SIGKILL 给这个容器。如果
--sig-proxy 是 true (默认),CTRL-c 发送SIGINT 给容器。可以使用CTRL-p CTRL-q 去detach 这个容器并且 让它自己运行。

dock command line

docker cli 链接

列出镜像

docker images

删除镜像

docker image rm <IMAGE NAME>

列出容器

docker ps

拉取镜像

docker pull registry.aibee.cn/store/signals_base:0.0.1

运行一个镜像

docker run -it --rm signals:latest bash

volume

volume
如果想指定volume 的驱动选项,应该使用--mount 文档链接
-v or --volume: 包含三个字段,用 冒号: 分割。
  • 对于named volume. 第一个字段是 volume的名字。在宿主机上是惟一的。对于anonymous volume ,第一个字段忽略
  • 第二个字段是路径。被加载到 容器的的路径
  • 第三个字段是可选的。例如 ro

--mount 有三种类型,bind volume tmpfs

  1. 创建一个volume
    docker volume create<volume name>
  2. 显示一个volume 的详细信息
    docker volume inspect <volume name>
  3. 列出volumes
    docker volume ls
  4. 将不使用的local volumes 删除
    docker volume prune
  5. 删除某个volume
    docker volume rm <volume name>

Examples

$ docker volume create hello
hello
$ docker run -d -v hello:/world busybox ls /world

docker 不支持相对路径
多个容器可以在同一时刻使用同一个volume. 对于多个容器需要访问共享的数据是很有用的。例如:如果一个容器负责写数据,另一个容器负责读数据
volume name 不能重复

docker
docker run -it --rm -v hello:/root/world:ro registry.aibee.cn/store/signals_base:0.0.1 bash
python3 建立虚拟环境
python3 -m venv tutorial-env
启动虚拟环境
source tutorial-env/bin/activate

clone 一个仓库后,
执行arc

arc install-certificate
提交后执行
arc diff

Dockfile 最佳实践

WORKDIR

使用绝对路径,不要用 RUN cd ... && do-something

ADD or COPY

推荐使用COPY, ADD 会对某些文件解压缩,支持远程下载。后来发现并不好。推荐更简单的COPY 。远程下载用curl 或 wget

docker build

build an image from an Dockfile

使用

docker build [OPTIONS] PATH | URL | -

参数

参数 描述
-t --tag Name and optionally a tag in the ‘name:tag’ format
-f --file Name of the Dockerfile (Default is ‘PATH/Dockerfile’)

example

docker build -t vieux/apache:2.0 .
docker build -f Dockerfile.debug .

docker push

desc

Push an image or a repository to a registry

相关文章

  • docker学习

    docker镜像 docker容器 docker仓库 安装docker docker版本 docker分为社区版和...

  • Docker安装和运行

    获取Docker 安装Docker 验证安装 1、获取Docker Docker for Mac Docker f...

  • Docker知识手册

    Docker 容器 启动docker:docker start 查看docker运行状态:docker stats...

  • Docker简介

    章节介绍 # Docker是什么# Docker包括什么# Docker镜像# Docker编配# Docker还...

  • Docker 常用操作

    Docker docker: 18.09.4、nvidia-docker: 2.0.3 docker 19.03 ...

  • rancher+harbor离线安装

    安装docker,此docker为社区版docker。docker官方文档:https://docs.docker...

  • Linux之Docker

    Linux之Docker 目录 Docker简单介绍 在线Docker安装 离线Docker安装 Docker简单...

  • Docker常用命令

    Docker常用命令 Docker帮助命令 docker version:查看docker版本 docker in...

  • Docker基础操作

    Docker部署 Docker安装 镜像加速 Docker 基础命令 Docker镜像管理 搜索镜像docker ...

  • docker容器状态查看命令集

    docker inspect 用法 : docker inspect [docker名称/docker short...

网友评论

      本文标题:docker

      本文链接:https://www.haomeiwen.com/subject/fbbnxqtx.html