04Docker容器
启动容器
启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(exited)的容器重新启动。
新建并启动
所需要的命令主要为docker run,例如,下面的命令输出"Hello World",之后终止容器
12$ docker run -t -i ubuntu:18.04 /bin/bashroot@af8bae53bdd3:/#
其中,-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开。
当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括:
检查本地是否存在指定的镜像,不存在就从 registry 下载
利用镜像创建并启动一个容器
分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
从地址池配置一个 ip 地址给容器
执行用户指定的应用程序
执行完毕后容器被终止
启动已终止容器
以利用 docker container start 命令,直接将一个已经终 ...
03Dockerfile指令详解
FROM指定基础镜像
所谓定制镜像,那一定是以一个镜像为基础,在其上进行定制。就像我们之前运行了一个 nginx 镜像的容器,再进行修改一样,基础镜像是必须指定的。而 FROM 就是指定 基础镜像,因此一个 Dockerfile 中 FROM 是必备的指令,并且必须是第一条指令。
在 Docker Hub 上有非常多的高质量的官方镜像,有可以直接拿来使用的服务类的镜像,如 nginx、redis、mongo、mysql、httpd、php、tomcat 等;也有一些方便开发、构建、运行各种语言应用的镜像,如 node、openjdk、python、ruby、golang 等。可以在其中寻找一个最符合我们最终目标的镜像为基础镜像进行定制。
如果没有找到对应服务的镜像,官方镜像中还提供了一些更为基础的操作系统镜像,如 ubuntu、debian、centos、fedora、alpine 等,这些操作系统的软件库为我们提供了更广阔的扩展空间。
除了选择现有镜像为基础镜像外,Docker 还存在一个特殊的镜像,名为 scratch。这个镜像是虚拟的概念,并不实际存在,它表示一个 ...
02Docker镜像
镜像
获取镜像
从 Docker 镜像仓库获取镜像的命令是 docker pull。其命令格式为:
1$ docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
具体的选项可以通过 docker pull --help 命令看到,这里我们说一下镜像名称的格式。
Docker 镜像仓库地址:地址的格式一般是 <域名/IP>[:端口号]。默认地址是 Docker Hub(docker.io)。
仓库名:如之前所说,这里的仓库名是两段式名称,即 <用户名>/<软件名>。对于 Docker Hub,如果不给出用户名,则默认为 library,也就是官方镜像。
12345678$ docker pull ubuntu:18.0418.04: Pulling from library/ubuntu92dc2a97ff99: Pull completebe13a9d27eb8: Pull completec8299583700a: Pull completeDigest: sha256:4bc3ae65 ...
01Docker安装
概述
Docker是一种开源平台,用于开发、部署和运行应用程序。它通过使用容器来简化应用程序的打包和分发,提供了一种轻量级的虚拟化解决方案。以下是一些Docker的关键概念:
镜像(Image):Docker镜像是容器的只读模板,定义了容器运行时的环境和内容。镜像可以从Docker Hub或其他私有注册表下载,或者从Dockerfile创建。
容器(Container):Docker容器是轻量级的、独立的软件包,包含应用程序的所有依赖项(如代码、运行时、系统工具和库)。与虚拟机不同,容器共享主机操作系统的内核,资源开销更小。
仓库(Repository): Repository是用于存储和分发Docker镜像的地方。可以将其视为一个镜像的集合,不同的镜像可能代表同一个应用程序的不同版本。
Dockerfile:Dockerfile是一个文本文件,包含一系列指令,用于构建Docker镜像。它规定了如何安装依赖项、复制文件以及配置环境等。
Docker引擎(Engine):Docker引擎是Docker的核心,它包含了容器的构建、运行和管理工具。
Docker Hub:Docker ...