hxz
发布于 2022-12-24 / 82 阅读
1

docker应用容器引擎

docker简述

docker是一个开源的应用容器引擎,它允许开发者将应用和依赖打包到一个可移植的镜像中,并且可以在任何支持的操作系统上运行。docker支持多个平台,包含win和linux,docker容器都在一个隔离的环境中运行,保证了安全性和稳定性。

我们可以通过docker能处理的问题场景来了解docker的特性:

  1. 环境一致性:Docker 可以确保开发、测试和生产环境保持一致,避免了因环境差异导致的问题,有助于减少在设备间迁移时出现的错误和调试时间。

  2. 便携性:Docker 容器可以将应用及其依赖打包在一起,形成一个独立的单元,这个单元可以在任何支持 Docker 的系统上运行,实现了跨平台、跨服务器的便携性。

  3. 快速部署和扩展:通过 Docker,可以快速地启动或停止应用,这对于自动化测试、持续集成和部署流程非常有用。同时,容器的快速启停特性也便于应对负载变化进行快速扩展或缩减。

  4. 隔离性:每个 Docker 容器都在自己的环境中运行,与其他容器隔离,这提高了应用的安全性。即使一个容器发生安全问题,也不会影响到其他容器或宿主机。

docker核心概念

在docker中,有一些核心概念是需要了解的:

  1. 容器(Container):容器是具体应用的运行实例

  2. 镜像(Image):镜像包含了运行容器所需的代码、运行时、库、环境变量和配置文件,相当于一个模板文件

  3. 仓库(Repository):仓库是用来集中存放和管理镜像文件的地方,Docker Hub是目前最知名的公开仓库

docker安装

以Linux举例, Linux中部署docker

要在 CentOS 7.6 上部署 Docker,你可以按照以下步骤操作:

更新你的系统

首先,你需要更新你的系统以确保所有的软件都是最新的。你可以使用以下命令来更新你的系统:

sudo yum update -y

安装必要的软件包

Docker 需要 yum-utils,device-mapper-persistent-data 和 lvm2 包。你可以使用以下命令来安装这些包:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

 

添加 Docker 仓库

使用以下命令添加 Docker 的 yum 仓库:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

 

安装 Docker

现在你可以安装 Docker 了。使用以下命令来安装 Docker:

sudo yum install -y docker-ce

 

启动 Docker 服务

安装完成后,启动 Docker 服务并设置为开机启动:

sudo systemctl start docker
sudo systemctl enable docker

 

验证 Docker 是否安装成功

你可以运行一个测试镜像来验证 Docker 是否安装成功:

sudo docker run hello-world

如果 Docker 安装成功,你将看到 Hello from Docker! 的消息。

查看docker版本

docker version

docker安装帮助文档:https://docs.docker.com/desktop/install/mac-install/

docker常见命令

一、容器管理

  1. docker ps: 这个命令用于列出当前正在运行的容器。添加 -a 选项可以列出所有容器(包括已经停止的)。

docker ps -a
  1. docker run命令可以创建和运行Docker容器。例如,要创建一个基于Ubuntu镜像的容器,可以运行以下命令:

    docker run -it ubuntu /bin/bash
    #直接执行 docker run 命令, 等同于先执行 docker create 命令,再执行 docker start 命令。
  2. docker stop: 这个命令用于停止一个正在运行的容器。

docker stop <container_id>
  1. docker rm: 这个命令用于删除一个容器。

docker rm <container_id>
  1. docker exec: 这个命令用于在正在运行的容器中执行命令。例如,docker exec -it <container_id> /bin/bash 可以在一个正在运行的容器中打开一个新的 bash shell。

docker exec -it <container_id> /bin/bash
  1. docker build: 这个命令用于从 Dockerfile 构建 Docker 镜像。

docker build -t <image_name>:<tag_name> .
  1. docker logs: 这个命令用于查看容器的日志输出。

docker logs <container_id>

二、镜像管理

  1. docker images: 这个命令用于列出本地的 Docker 镜像。

docker images

 

  1. docker rmi: 这个命令用于删除本地的 Docker 镜像。

docker rmi <image_id>

 

  1. docker pull: 这个命令用于从 Docker Hub 下载镜像。

docker pull <image_name>:<tag_name>

 

docker compose

Docker Compose 是一个工具,用于定义和运行多容器 Docker 应用。通过一个 YAML 文件米配査应用服务,可以使用一个单独的命令来启动和停止所有服务。

#dockercompose.yml示例

version:'3'

services:

	web :

	build:

	ports:

	-"5000:5000"

redis :

	image: "redis:alpine"

使用 Docker Compose 命令

#启动所有服务
docker-compose up
#在后台启动所有服务

docker-compose up-d
#停止所有服务

docker-compose down
#构建或重新构建服务

docker-compose build