【Docker】个人笔记

烟话6 2024-09-04 16:07:03 阅读 58

文章目录

Docker三个基本概念镜像(Image)容器(Container)仓库(Repository)

Docker命令基础命令查看版本信息显示详细信息从仓库拉取镜像列出本地存储的镜像删除一个或多个镜像列出所有运行中的容器运行一个新的容器停止一个运行中的容器启动一个已停止的容器重启一个容器删除一个或多个容器在运行中的容器中执行命令获取容器的日志

镜像管理从Dockerfile构建一个镜像为镜像打标签将镜像推送到Docker仓库从Docker仓库中拉取镜像

网络管理列出所有Docker网络创建一个新的Docker网络删除一个或多个Docker网络查看Docker网络的详细信息

卷管理列出所有Docker卷创建一个新的Docker卷删除一个或多个Docker卷查看Docker卷的详细信息

DockerfileDocker Compose通俗理解Docker Compose 的作用举例说明使用 Docker Compose优点小结


Docker <code>开源的 应用容器引擎 Go语言开发的

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化

Docker三个基本概念

镜像(Image)

Docker 镜像是一种轻量级、独立的、可执行的软件包,它包含了运行某个软件所需的所有元素。镜像是不可变的,创建后不能更改,但可以用作构建新镜像的基础。

比喻:

想象一下,它就像一本食谱(Recipe),详细列出了如何制作某道菜。这个食谱包含了所有的步骤和所需的食材。

食谱:代表 Docker 镜像

所需的食材和步骤:代表应用程序、依赖库、配置文件等

有了这本食谱(Docker 镜像),你和别人都能按照同样的步骤做出一样的菜。

容器(Container)

Docker 容器是基于镜像创建的一个运行实例,它包含了应用程序及其所有依赖项,运行在一个完全隔离的环境中。容器是动态的,可以启动、停止、移动和删除。

比喻:

容器就像是你根据食谱(Docker 镜像)做出来的那道实际的菜。你可以吃这道菜,也可以把它装进饭盒里带走。

实际的菜:代表 Docker 容器

装进饭盒里带走:代表容器的便携性和可移植性

有了这道菜(Docker 容器),你可以随时享用,也可以带到任何地方,和别人分享。

仓库(Repository)

集中存放镜像文件的场所


Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

Docker 容器通过 Docker 镜像来创建。

Docker 镜像是用于创建 Docker 容器的模板

容器与镜像的关系类似于面向对象编程中的对象与类。

在这里插入图片描述

Docker命令

基础命令

查看版本信息

<code>docker version

显示详细信息

docker info

从仓库拉取镜像

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

# 例如:

docker pull ubuntu:latest

列出本地存储的镜像

docker images

删除一个或多个镜像

docker rmi [OPTIONS] IMAGE [IMAGE...]

# 例如:

docker rmi ubuntu:latest

列出所有运行中的容器

docker ps [OPTIONS]

# 列出所有容器(包括停止的容器):

docker ps -a

运行一个新的容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

# 例如,运行一个交互式的 Ubuntu 容器:

docker run -it ubuntu:latest /bin/bash

常用选项:

-d:后台运行容器。

-p:端口映射。

-v:挂载卷。

–name:给容器命名。

-e:设置环境变量。

停止一个运行中的容器

docker stop [OPTIONS] CONTAINER [CONTAINER...]

# 例如:

docker stop my_container

启动一个已停止的容器

docker start [OPTIONS] CONTAINER [CONTAINER...]

# 例如:

docker start my_container

重启一个容器

docker restart [OPTIONS] CONTAINER [CONTAINER...]

# 例如:

docker restart my_container

删除一个或多个容器

docker rm [OPTIONS] CONTAINER [CONTAINER...]

# 例如:

docker rm my_container

在运行中的容器中执行命令

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

# 例如,在容器中打开一个交互式 shell:

docker exec -it my_container /bin/bash

获取容器的日志

docker logs [OPTIONS] CONTAINER

# 例如:

docker logs my_container

镜像管理

Dockerfile构建一个镜像

docker build [OPTIONS] PATH | URL | -

# 例如,从当前目录的 Dockerfile 构建镜像:

docker build -t my_image:latest .

为镜像打标签

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

# 例如:

docker tag my_image:latest my_repo/my_image:v1.0

将镜像推送到Docker仓库

docker push [OPTIONS] NAME[:TAG]

# 例如:

docker push my_repo/my_image:v1.0

从Docker仓库中拉取镜像

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

# 例如:

docker pull ubuntu:latest

网络管理

列出所有Docker网络

docker network ls

创建一个新的Docker网络

docker network create [OPTIONS] NETWORK

# 例如:

docker network create my_network

删除一个或多个Docker网络

docker network rm NETWORK [NETWORK...]

# 例如:

docker network rm my_network

查看Docker网络的详细信息

docker network inspect NETWORK

# 例如:

docker network inspect my_network

卷管理

列出所有Docker卷

docker volume ls

创建一个新的Docker卷

docker volume create [OPTIONS] [VOLUME]

# 例如:

docker volume create my_volume

删除一个或多个Docker卷

docker volume rm VOLUME [VOLUME...]

# 例如:

docker volume rm my_volume

查看Docker卷的详细信息

docker volume inspect VOLUME

# 例如:

docker volume inspect my_volume

常用选项详解

-d:后台运行容器。

-it:运行一个交互式终端。

-p:端口映射,格式为HOST_PORT:CONTAINER_PORT。

-v:挂载卷,格式为HOST_PATH:CONTAINER_PATH。

-e:设置环境变量。

–name:为容器指定名称。

–rm:容器退出后自动删除容器。

–network:指定容器加入的网络。

Dockerfile

Dockerfile 是一个文本文件,包含了构建Docker镜像所有指令

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明

通过定义一系列命令和参数,Dockerfile 指导 Docker 构建一个自定义的镜像

Docker Compose

Compose 是用于定义和运行多容器 Docker 应用程序的工具

通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务

Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过一个简单的配置文件,你可以使用 Docker Compose 来配置应用程序的服务,并使用单个命令启动所有服务。

通俗理解

假设你有一个复杂的应用程序,它需要多个组件来一起工作,比如:

Web服务器:处理用户的 HTTP 请求。数据库:存储应用程序的数据。缓存服务器:加速数据访问,提高性能。

如果你要手动启动这些服务,你需要分别运行多个 docker run 命令,这可能会变得非常复杂和容易出错。特别是当你需要在不同的环境(如开发、测试和生产)中运行应用程序时,管理这些服务的配置会变得更加困难。

Docker Compose 的作用

Docker Compose 通过一个配置文件(通常命名为 docker-compose.yml)来定义所有这些服务。这个配置文件可以包括:

每个服务使用的镜像。服务之间的依赖关系。网络和卷的配置。环境变量。

举例说明

假设你有一个简单的应用程序,有一个 Web 服务器和一个数据库。你可以创建一个 docker-compose.yml 文件来定义这些服务:

version: '3'

services:

web:

image: nginx:latest

ports:

- "8080:80"

db:

image: mysql:latest

environment:

MYSQL_ROOT_PASSWORD: example

这个文件定义了两个服务:

web 服务:使用最新版本的 Nginx 镜像,并将主机的 8080 端口映射到容器的 80 端口。db 服务:使用最新版本的 MySQL 镜像,并设置一个环境变量来定义 MySQL 的根密码。

使用 Docker Compose

启动服务

通过运行以下命令,Docker Compose 会根据配置文件启动所有服务:

docker-compose up

停止服务

运行以下命令可以停止所有服务:

docker-compose down

查看服务状态

你可以使用以下命令查看运行中的服务状态:

docker-compose ps

优点

简化多容器管理:不用手动启动和停止每个容器,简化操作。一致的开发环境:所有开发人员都可以使用相同的配置文件,确保一致的开发环境。易于扩展:可以轻松添加或删除服务,调整配置。

小结

Docker Compose 让你能够通过一个简单的配置文件来管理多容器应用,简化了复杂应用的部署和管理。无论是在开发环境还是生产环境,它都能帮助你更高效地管理服务。




声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。