docker的使用

目录

1、什么是Docker

2、Docker的特点

3、Docker基础命令

4、Docker组件

4.1、Docker组件------------镜像

4.2、Docker组件---------容器

4.3、Docker容器-----------数据卷

4.3.1、什么是数据卷

4.3.2、数据卷相关命令

4.3.3、数据卷的作用

4.3.4 、挂载本地目录或文件

4.4、Docker组件-----Network网络

4.4.1、什么是Docker网络

4.4.2、Network相关命令

4.4.3、Network的作用


1、什么是Docker

Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用以及应用的运行环境到一个可移植的容器中,然后可以在任何支持Docker的机器上运行这个容器。Docker 使用 Linux 容器(LXC)技术,但是它提供了比传统容器更加易用的工作流和用户界面。

2、Docker的特点

  1. 容器化:Docker 可以将应用及其依赖环境封装在一个轻量级、可移植的容器中,与宿主机系统隔离。
  2. 可移植性:容器可以在任何安装了Docker的机器上运行,无论是开发、测试还是生产环境。
  3. 自动化部署:Docker 可以自动化部署应用,简化配置和管理过程。
  4. 版本控制和组件重用:Docker 支持使用Dockerfile来定义容器内容,可以进行版本控制,并且可以重用已有的容器镜像。
  5. 微服务架构:Docker 适合构建微服务架构,每个服务可以独立部署和扩展

3、Docker基础命令

docker pull

拉取镜像

docker push

推送镜像到DockerRegistry

docker images

查看本地镜像

docker rmi

删除本地镜像

docker run

创建并运行容器(不能重复创建)

docker stop

停止指定容器

docker start

启动指定容器

docker restart

重新启动容器

docker rm

删除指定容器

docker ps

查看容器

docker logs

查看容器运行日志

docker exec

进入容器

docker save

保存镜像到本地压缩文件

docker load

加载本地压缩文件到镜像

docker inspect

查看容器详细信息

4、Docker组件

4.1、Docker组件------------镜像

镜像(Image):镜像是只读模板,定义了容器的运行环境和应用。镜像可以包含操作系统、应用代码、库、环境变量等。镜像可以被复制和分发到任何支持 Docker 的系统上。

拉取镜像

docker pull 镜像名              例如mysql的镜像    docker pull mysql

4.2、Docker组件---------容器

容器(Container):容器是 Docker 的基本运行单元,它们是轻量级的、可移植的、自给自足的软件运行环境。每个容器都包含应用及其所有依赖项,确保应用在不同环境中的一致性。

创建docker容器

示例:mysql 容器

docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  mysql


docker run:创建docker容器

-d:后台运行

--name:给容器起名字

-e TZ:设置容器的参数,时区

-e mysql 设置密码

最下面一行是镜像名称 ,不指认版本,默认是最新版本

4.3、Docker容器-----------数据卷

4.3.1、什么是数据卷

数据卷(Volumes)是 Docker 的一个重要组件,用于管理容器数据的持久化和共享。数据卷提供了一种机制,允许你将数据独立于容器的生命周期进行存储和管理,这样即使容器被删除,数据也不会丢失。数据卷(volume)是一个虚拟目录,是容器内目录宿主机目录之间映射的桥梁。

4.3.2、数据卷相关命令

docker volume create

创建数据卷

docker volume ls

查看所有数据卷

docker volume rm

删除指定数据卷

docker volume inspect

查看某个数据卷的详情

docker volume prune

清除数据卷

4.3.3、数据卷的作用

  • 数据持久化:确保容器中的数据在容器生命周期结束后仍然可以保留,避免数据丢失。
  • 数据共享:允许多个容器访问和操作相同的数据,这对于需要多个服务访问同一数据集的应用至关重要。
  • 性能优化:数据卷可以提供比容器内文件系统更好的性能,因为它们通常直接存储在宿主机的文件系统中。
  • 数据隔离:数据卷提供了一种机制,使得容器内的数据可以与容器的生命周期分离,有助于实现数据的隔离和安全性。
  • 生命周期管理:数据卷的生命周期独立于容器,可以独立于容器进行创建、删除和维护。

4.3.4 、挂载本地目录或文件

数据卷的目录结构较深,如果我们去操作数据卷目录会不太方便。在很多情况下,我们会直接将容器目录与宿主机指定目录挂载。挂载语法与数据卷类似:

# 挂载本地目录 -v 本地目录:容器内目录 
# 挂载本地文件 -v 本地文件:容器内文件

注意:本地目录或文件必须以 /./开头,如果直接以名字开头,会被识别为数据卷名而非本地目录名。

MySQL容器目录挂载演示

创建并运行新mysql容器,挂载本地目录
docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  -v ./mysql/data:/var/lib/mysql \
  -v ./mysql/conf:/etc/mysql/conf.d \
  -v ./mysql/init:/docker-entrypoint-initdb.d \
  mysql

总结:数据卷是容器目录和本地目录的一个映射,在本地更改会影响到容器里的相对应的目录内容

避免了在容器内部的隔离环境对文件的修改

注意:每一个不同的镜像,将来创建容器后内部有哪些目录可以挂载,可以参考DockerHub对应的页面

4.4、Docker组件-----Network网络

4.4.1、什么是Docker网络

Docker 网络是 Docker 容器平台中用于管理容器之间以及容器与外部世界通信的网络基础设施。Docker 提供了多种网络类型,每种类型都有其特定的用途和配置方式,以满足不同的网络需求

4.4.2、Network相关命令

docker network create

创建一个网络

docker network ls

查看所有网络

docker network rm

删除指定网络

docker network prune

清除未使用的网络

docker network connect

使指定容器连接加入某网络

docker network disconnect

使指定容器连接离开某网络

docker network inspect

查看网络详细信息

4.4.3、Network的作用

容器间通信:允许同一网络中的容器互相发现和通信,实现服务之间的协同工作。

网络隔离:通过不同的网络模式,如桥接网络、自定义网络等,实现容器间或容器与外部网络的隔离,增强安全性。

端口映射:允许将容器内部端口映射到宿主机端口,使得外部可以访问容器中运行的服务。

跨主机通信:在 Docker Swarm 模式下,支持容器跨多个主机的网络通信,实现集群化部署。

网络安全:提供网络安全特性,如防火墙规则和访问控制,以保护容器之间的通信。

  • 36
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值