网站收录查询方法,帮别人做网站进了看守所,网站用cms,郑州勘察设计信息网文章目录 介绍Docker和容器化技术什么是Docker#xff1f;Docker的优势和应用场景Docker的应用场景包括但不限于#xff1a; 安装和配置Docker安装Docker引擎配置Docker环境 Docker镜像命令搜索镜像拉取镜像查看本地镜像删除本地镜像 Docker容器命令创建容器启动容器停止容器… 文章目录 介绍Docker和容器化技术什么是DockerDocker的优势和应用场景Docker的应用场景包括但不限于 安装和配置Docker安装Docker引擎配置Docker环境 Docker镜像命令搜索镜像拉取镜像查看本地镜像删除本地镜像 Docker容器命令创建容器启动容器停止容器查看容器状态进入容器删除容器 Docker网络命令创建网络查看网络连接容器到网络断开容器与网络的连接 Docker数据卷命令创建数据卷查看数据卷挂载数据卷到容器备份和恢复数据卷 Docker Compose命令编写Docker Compose文件启动和停止应用查看应用状态 Docker Swarm命令初始化Swarm模式添加节点部署服务扩展和缩减服务 Docker Registry命令搭建私有仓库推送镜像到私有仓库从私有仓库拉取镜像 实际应用示例使用Docker部署Web应用使用Docker构建多容器应用 Jenkins服务器中部署docker的简单调用 介绍Docker和容器化技术
什么是Docker
Docker是一种开源的容器化平台可以让开发者打包应用程序及其所有依赖关系如库、环境变量、配置文件等到一个称为容器的独立运行环境中。容器是一种轻量级、可移植的软件单元它们可以在任何支持Docker的环境中运行而不受底层系统的影响。
Docker的优势和应用场景 轻量级和快速部署 Docker容器相比于传统虚拟机更轻量级启动速度更快使得应用程序的部署和扩展变得更加高效。 环境一致性 Docker容器可以确保在不同环境中应用程序的行为一致避免了“在我的机器上可以运行”的问题。 资源利用率高 多个Docker容器可以共享主机的操作系统内核节省了资源提高了系统利用率。 易于管理 Docker提供了丰富的命令行工具和API使得容器的管理、监控、日志查看等操作变得简单。 应用隔离 每个Docker容器都是相互隔离的一个容器的问题不会影响其他容器提高了应用程序的安全性。
Docker的应用场景包括但不限于 微服务架构 Docker容器适合部署和管理微服务每个微服务可以打包成一个独立的容器便于扩展和维护。 持续集成和持续部署CI/CD Docker容器可以在不同环境中快速部署适合用于构建持续集成和持续部署的流程。 开发环境隔离 开发人员可以使用Docker容器来创建隔离的开发环境避免开发环境与生产环境不一致导致的问题。 跨平台开发 Docker容器可以在不同操作系统和云平台上运行使得应用程序在各种环境中具有高度的可移植性。
通过使用Docker开发者可以更加便捷地构建、交付和运行应用程序提高了开发效率和部署灵活性成为现代软件开发中不可或缺的一环。
安装和配置Docker
安装Docker引擎
安装Docker引擎是使用Docker的第一步。以下是安装Docker引擎的常见步骤 Ubuntu系统下安装Docker 更新apt软件包索引 sudo apt-get update安装必要的软件包以允许apt通过HTTPS使用存储库 sudo apt-get install apt-transport-https ca-certificates curl software-properties-common添加Docker的官方GPG密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -设置Docker稳定版存储库 sudo add-apt-repository deb [archamd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable更新apt软件包索引 sudo apt-get update安装最新版本的Docker sudo apt-get install docker-ce验证Docker是否安装成功 sudo docker --versionmacOS系统下安装Docker 下载Docker Desktop for Mac并安装https://www.docker.com/products/docker-desktop Windows系统下安装Docker 下载Docker Desktop for Windows并安装https://www.docker.com/products/docker-desktop
配置Docker环境
安装完Docker后通常不需要太多额外的配置。但是你可以根据需要进行一些常见的配置如 配置Docker镜像加速器 在国内使用Docker时可以配置镜像加速器以加速镜像的拉取和推送。常用的镜像加速器有阿里云加速器、网易云加速器等。 配置Docker容器网络 可以创建自定义网络以连接Docker容器或者使用默认的桥接网络。 配置Docker存储 可以配置Docker容器的存储驱动如使用本地存储、网络存储或云存储等。 安全配置 可以配置Docker的安全参数如限制容器的资源使用、设置用户访问权限等。
配置Docker环境可以根据实际需求进行调整确保Docker在你的开发和部署流程中能够更好地发挥作用。
Docker镜像命令
搜索镜像
要在Docker Hub上搜索镜像可以使用以下命令
docker search 镜像名称例如要搜索名为ubuntu的镜像可以运行
docker search ubuntu拉取镜像
要拉取一个镜像到本地可以使用以下命令
docker pull 镜像名称:标签例如要拉取Ubuntu 20.04的镜像可以运行
docker pull ubuntu:20.04查看本地镜像
要查看本地已经拉取的镜像列表可以使用以下命令
docker images这将列出本地所有的镜像包括镜像名称、标签、镜像ID、创建时间等信息。
删除本地镜像
要删除本地的一个或多个镜像可以使用以下命令
docker rmi 镜像ID或镜像名称如果要删除多个镜像可以在命令中指定多个镜像ID或名称。
例如要删除名为ubuntu:20.04的镜像可以运行
docker rmi ubuntu:20.04请注意删除镜像时要谨慎确保不再需要这些镜像因为删除后将无法恢复。
Docker容器命令
创建容器
要创建一个容器可以使用以下命令
docker create 镜像名称 命令例如要创建一个基于Ubuntu 20.04镜像的容器可以运行
docker create ubuntu:20.04启动容器
要启动一个已经创建的容器可以使用以下命令
docker start 容器ID或容器名称例如要启动名为my_container的容器可以运行
docker start my_container停止容器
要停止一个正在运行的容器可以使用以下命令
docker stop 容器ID或容器名称例如要停止名为my_container的容器可以运行
docker stop my_container查看容器状态
要查看容器的状态可以使用以下命令
docker ps这将列出正在运行的容器的信息包括容器ID、镜像名称、状态、创建时间等。
如果要查看所有包括已停止的容器可以使用-a选项
docker ps -a进入容器
要进入一个正在运行的容器可以使用以下命令
docker exec -it 容器ID或容器名称 命令例如要进入名为my_container的容器并打开一个交互式终端可以运行
docker exec -it my_container bash这将在容器内部打开一个bash终端可以在其中执行命令。
删除容器
要删除一个容器可以使用以下命令
docker rm 容器ID或容器名称例如要删除名为my_container的容器可以运行
docker rm my_container请注意删除容器时要谨慎确保不再需要这些容器因为删除后将无法恢复。
Docker网络命令
创建网络
要创建一个自定义网络可以使用以下命令
docker network create 网络名称例如要创建一个名为my_network的网络可以运行
docker network create my_network查看网络
要查看Docker中存在的网络列表可以使用以下命令
docker network ls这将列出所有的Docker网络包括网络ID、名称、驱动程序等信息。
连接容器到网络
要将一个容器连接到指定的网络可以使用以下命令
docker network connect 网络名称 容器ID或容器名称例如要将容器my_container连接到my_network网络可以运行
docker network connect my_network my_container断开容器与网络的连接
要将一个容器与指定网络断开连接可以使用以下命令
docker network disconnect 网络名称 容器ID或容器名称例如要将容器my_container与my_network网络断开连接可以运行
docker network disconnect my_network my_container请注意网络命令可以帮助您管理Docker中的网络配置确保容器能够按照需要进行通信和连接。
Docker数据卷命令
创建数据卷
要创建一个数据卷可以使用以下命令
docker volume create 数据卷名称例如要创建名为my_volume的数据卷可以运行
docker volume create my_volume查看数据卷
要查看所有的数据卷可以使用以下命令
docker volume ls这将列出所有的数据卷包括数据卷的名称和驱动程序。
挂载数据卷到容器
要将一个数据卷挂载到容器中可以使用以下命令
docker run -v 数据卷名称:容器路径 镜像名称例如要将名为my_volume的数据卷挂载到容器的/data路径可以运行
docker run -v my_volume:/data ubuntu:20.04这将创建一个基于Ubuntu 20.04镜像的容器并将my_volume数据卷挂载到容器的/data路径。
备份和恢复数据卷
要备份数据卷可以使用以下命令将数据卷导出为一个.tar文件
docker run --rm -v 数据卷名称:/data -v 目标路径:/backup ubuntu:20.04 tar cvf /backup/备份文件名.tar /data例如要备份名为my_volume的数据卷到/backup目录下的my_volume_backup.tar文件中可以运行
docker run --rm -v my_volume:/data -v /backup:/backup ubuntu:20.04 tar cvf /backup/my_volume_backup.tar /data要恢复数据卷可以使用以下命令将.tar文件导入到一个新的数据卷中
docker run --rm -v 目标路径:/data -v 备份文件路径:/backup ubuntu:20.04 tar xvf /backup/备份文件名.tar -C /data例如要将/backup目录下的my_volume_backup.tar文件恢复为一个名为my_volume_restore的数据卷可以运行
docker run --rm -v my_volume_restore:/data -v /backup:/backup ubuntu:20.04 tar xvf /backup/my_volume_backup.tar -C /data这将创建一个名为my_volume_restore的数据卷并将备份文件中的内容恢复到该数据卷中。
Docker Compose命令
编写Docker Compose文件
Docker Compose使用YAML文件来定义和配置多个容器应用。以下是一个简单的Docker Compose文件示例
version: 3
services:web:image: nginx:latestports:- 80:80volumes:- ./html:/usr/share/nginx/html在这个示例中我们定义了一个名为web的服务使用了nginx:latest镜像并将主机的80端口映射到容器的80端口。还使用了一个数据卷将主机上的./html目录挂载到容器的/usr/share/nginx/html路径。
启动和停止应用
要启动使用Docker Compose定义的应用程序可以使用以下命令
docker-compose up这将根据Docker Compose文件启动所有定义的服务。
要停止应用程序可以使用以下命令
docker-compose down这将停止并移除所有相关的容器、网络和数据卷。
查看应用状态
要查看Docker Compose应用程序的状态可以使用以下命令
docker-compose ps这将显示所有定义的服务的状态包括容器ID、状态、端口映射等信息。
可以使用其他Docker命令如docker ps和docker logs来查看单个服务的状态和日志。
Docker Swarm命令
Docker Swarm是Docker的内置原生集群和编排工具。它允许您将多个Docker主机组成一个集群以便轻松地部署和管理分布式应用程序。
初始化Swarm模式
要初始化一个Docker Swarm集群可以使用以下命令
docker swarm init这将将当前主机设置为Swarm管理节点并生成一个加入令牌用于其他节点加入集群。
添加节点
要将其他节点加入到Swarm集群中可以使用以下命令
docker swarm join --token 加入令牌 管理节点IP:端口其中加入令牌是在初始化Swarm模式时生成的加入令牌管理节点IP是Swarm管理节点的IP地址端口是Swarm管理节点的监听端口。
部署服务
要在Swarm集群中部署服务可以使用以下命令
docker service create --name 服务名称 --replicas 副本数 镜像名称其中服务名称是要部署的服务的名称副本数是要运行的服务副本数镜像名称是要使用的镜像名称。
例如要部署一个名为my_service的服务使用nginx:latest镜像并运行3个副本可以运行
docker service create --name my_service --replicas 3 nginx:latest扩展和缩减服务
要扩展或缩减Swarm集群中的服务副本数可以使用以下命令
docker service scale 服务名称副本数例如要将名为my_service的服务的副本数扩展到5个可以运行
docker service scale my_service5这将增加my_service服务的副本数到5个。
要缩减副本数只需将副本数设置为较小的值即可。
请注意Swarm会自动处理服务的副本分布和容器的调度以确保服务的高可用性和负载均衡。
Docker Registry命令
Docker Registry是Docker官方提供的镜像仓库服务您可以使用它来存储和管理Docker镜像。您可以搭建私有的Docker Registry来存储自己的镜像。
搭建私有仓库
要搭建私有的Docker Registry可以使用以下命令
docker run -d -p 5000:5000 --restartalways --name registry registry:2这将在本地启动一个私有的Docker Registry服务并映射到主机的5000端口。
推送镜像到私有仓库
要将一个镜像推送到私有仓库首先需要给镜像打上私有仓库地址的标签然后推送到私有仓库。以下是推送镜像到私有仓库的命令
docker tag image_name localhost:5000/image_name
docker push localhost:5000/image_name这将把名为image_name的镜像推送到搭建的私有仓库中。
从私有仓库拉取镜像
要从私有仓库拉取镜像可以使用以下命令
docker pull localhost:5000/image_name这将从私有仓库中拉取名为image_name的镜像到本地。
实际应用示例
使用Docker部署Web应用
以下是使用Docker部署Web应用的示例步骤 编写Dockerfile创建一个名为Dockerfile的文件其中定义了如何构建Web应用的Docker镜像。例如可以基于一个现有的Web服务器镜像如Nginx或Apache将应用程序代码复制到镜像中并设置适当的配置。 构建Docker镜像在终端中导航到包含Dockerfile的目录并运行以下命令来构建镜像 docker build -t my_web_app .这将根据Dockerfile构建一个名为my_web_app的镜像。 运行Docker容器使用以下命令将镜像作为容器运行起来 docker run -d -p 80:80 my_web_app这将在端口80上将容器的80端口映射到主机上使Web应用可通过主机的IP地址访问。
现在您的Web应用已经在Docker容器中运行并且可以通过主机的IP地址访问。
使用Docker构建多容器应用
对于复杂的应用程序可能需要多个容器来支持不同的组件。以下是使用Docker构建多容器应用的示例步骤 编写Docker Compose文件创建一个名为docker-compose.yml的文件其中定义了应用程序的各个服务和它们之间的依赖关系。在该文件中可以指定每个服务使用的镜像、容器之间的网络连接等。 编写Dockerfile为每个服务编写Dockerfile定义如何构建每个服务的镜像。可以使用不同的基础镜像和安装所需的软件包、配置等。 构建和启动应用程序在终端中导航到包含docker-compose.yml文件的目录并运行以下命令来构建和启动应用程序 docker-compose up -d这将根据docker-compose.yml文件中的配置构建和启动应用程序的所有服务。
现在您的多容器应用程序已经在Docker中构建和运行起来了。Docker Compose会自动处理服务之间的网络连接和依赖关系使应用程序的部署变得简单和可靠。
请注意这只是一个简单的示例实际的多容器应用程序可能涉及更多的服务和复杂的配置。
Jenkins服务器中部署docker的简单调用 运行命令 docker run -d -it --name rocketmq-dashboard --restartalways -d -p 6765:8080 xxx.com/cea/rocketmq-dashboard:1.0.0docker run: 运行一个新的容器。-d: 后台运行容器。-it: 分配一个伪终端并保持标准输入打开。--name rocketmq-dashboard: 为容器指定一个名称为 rocketmq-dashboard。--restartalways: 设置容器总是在Docker守护进程启动时重新启动。-p 6765:8080: 将主机的端口6765映射到容器的端口8080。xxx.com/cea/rocketmq-dashboard:1.0.0: 要运行的镜像名称及其标签。 查看进程名称 docker psdocker ps: 查看正在运行的容器列表。 进入运行目录 进入运行目录 xxxx 可以是ps查出来的名称 也可以是id docker exec -it xxxxx /bin/bashdocker exec: 在运行的容器中执行命令。-it: 分配一个伪终端并保持标准输入打开。xxxxx: 容器的名称或ID。/bin/bash: 要在容器中执行的命令这里是启动一个bash shell。