Docker
核心概念解析
-
Client: Docker客户端( docker )是许多Docker用户与Docker交互的主要方式。当您使用诸如之类的命令
时 docker run ,客户端会将这些命令发送到 dockerd ,以执行这些命令。该 docker 命令使用DockerAPI。Docker客户端可以与多个守护程序通信。
-
守护程序:Docker守护程序( dockerd )侦听Docker API请求并管理Docker对象,例如图像,容器,网络和
卷。守护程序还可以与其他守护程序通信以管理Docker服务。Docker对象
- 镜像:是创建容器的模板,里面会有一些基础的环境,比如ubuntu/alpine等;
- 容器:是运行的镜像,提供统一且一致的运行环境。默认情况下,容器与其他容器及其主机之间的隔离
度相对较高。您可以控制容器的网络,存储或其他底层子系统与其他容器或与主机的隔离程度。
-
仓库:Docker仓库存储Docker映像。Docker Hub是任何人都可以使用的公共仓库,并且默认情况下, Docker已配置为在Docker Hub上查找映像。您甚至可以运行自己的私人仓库,比如:harbor。
运行步骤
docker run 命令
以下命令运行一个 ubuntu 容器,以交互方式附加到本地命令行会话,然后运行 /bin/bash 。
当运行此命令时:
docker run -i -t ubuntu /bin/bash
-
如果在 ubuntu 本地没有该映像,则Docker会将其从Hub仓库(默认)中下载,如果已经下载(docker pull
ubuntu)则会跳过; -
Docker会创建一个新容器。
-
Docker将一个读写文件系统分配给容器,作为其最后一层。这允许运行中的容器在其本地文件系统中创建或
修改文件和目录。 -
Docker创建了一个网络接口,默认没有指定任何网络选项时,将容器连接到默认网络,包括为容器分配新网
段的IP地址。默认情况下,容器可以使用主机的网络连接连接到外部网络。 -
Docker启动容器并执行 /bin/bash 。由于容器是交互式运行的,并且已附加到的终端(由于 -i 和 -t 标
志),可以在输出记录到终端时使用键盘提供输入。 -
当键入 exit 以终止 /bin/bash 命令时,容器将停止但不会被删除,可以重新启动(docker start)或删除它
(docker rm)。
Docker-compose
Docker Compose是一款旨在帮助定义和共享多容器应用程序的工具,使用Compose,可以通过创建一个YAML文
件来定义容器服务,并且可以使用类似于Docker的命令将所有内容进行管理(比如,启动、停止、重新部署等)。
# Use root/example as user/password credentials
version: '3.1'
services:
db:
image: mysql
# NOTE: use of "mysql_native_password" is not recommended:
<https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html\#upgrade->
caching-sha2-password
# (this is just an example, not intended to be a production configuration)
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
adminer:
image: adminer
restart: always
ports:
- 8080:8080等价于
docker run --restart=always -e MYSQL_ROOT_PASSWORD=example -d mysql:tag --default-
authentication-plugin=mysql_native_password
docker run --restart=always -p 8080:8080 adminer配置好 docker-compose.yml 文件后,执行下面命令运行在后台,可在 docker 客户端查看
docker-compose up -dTODO: mysql 默认密码为 example
docker ps 查看进程
client
- docker build
- docker pull
- docker run
docker host
镜像
images
容器
containers
docker registry
模版
运行
docker