Docker的安装及常用命令

Docker 是一个开源的容器化平台,它可以让开发者将应用程序及其依赖项打包到一个可移植的容器中,从而实现快速部署、轻松迁移和高效的资源利用。

一、核心概念

镜像(Image):

类似于虚拟机的镜像,是一个只读的模板,包含了运行一个特定应用程序所需的所有文件和依赖项。
可以从 Docker Hub 等镜像仓库中获取,也可以自己创建。
例如,一个包含了 Python 运行环境和一个 Web 应用程序的镜像,可以在不同的环境中快速部署这个 Web 应用。

容器(Container):

是从镜像创建的运行实例,是一个独立的运行环境,与宿主机和其他容器隔离。
容器可以启动、停止、暂停和删除,并且可以在不同的主机之间迁移。
例如,从一个 Python 镜像创建的容器,可以在其中运行特定的 Python 应用程序,而不会影响宿主机上的其他应用程序。

仓库(Repository):

用于存储和管理镜像的地方,可以是公共的(如 Docker Hub)或私有的。
开发者可以将自己创建的镜像推送到仓库中,以便在不同的环境中使用。
例如,一个团队可以创建一个私有仓库,用于存储和共享他们的应用程序镜像。

二、主要特点

轻量级:

与虚拟机相比,Docker 容器更加轻量级,因为它们共享宿主机的内核,不需要为每个容器单独运行一个完整的操作系统。
这使得容器的启动速度非常快,并且占用的资源也更少。

可移植性:

由于容器包含了应用程序及其所有依赖项,所以可以在不同的环境中轻松部署,而不需要担心环境差异导致的问题。
例如,可以在开发环境中创建一个容器,然后在测试环境和生产环境中直接部署这个容器,而不需要重新安装和配置应用程序。

高效的资源利用:

Docker 可以根据应用程序的实际需求动态分配资源,避免了资源的浪费。
可以在同一台主机上运行多个容器,每个容器都可以独立地使用资源,而不会相互干扰。

快速部署:

使用 Docker,可以快速创建和部署容器,从而大大缩短了应用程序的部署时间。
可以通过自动化工具和脚本实现持续集成和持续部署(CI/CD),提高开发效率。

三、使用场景

应用程序部署:

将应用程序及其依赖项打包到一个容器中,可以在不同的环境中快速部署,避免了环境配置的复杂性。
例如,一个 Web 应用程序可以在开发环境中进行开发和测试,然后将其打包成一个容器,在生产环境中直接部署。

持续集成和持续部署(CI/CD):

Docker 可以与持续集成和持续部署工具集成,实现自动化的构建、测试和部署流程。
例如,每次代码提交后,可以自动触发一个构建过程,将应用程序打包成一个容器,并在测试环境中进行测试,如果测试通过,则自动部署到生产环境中。

微服务架构:

在微服务架构中,每个服务都可以独立地部署和扩展,Docker 容器非常适合这种场景。
可以将每个微服务打包成一个容器,然后通过容器编排工具(如 Kubernetes)进行管理和调度。

开发和测试环境:

Docker 可以为开发人员提供一个一致的开发和测试环境,避免了因为环境差异导致的问题。
可以在不同的开发人员之间共享容器,提高开发效率。

四、安装和使用

在 Windows 系统上安装 Docker

请下载 Docker Desktop for Windows https://docs.docker.com/docker-for-windows/install/
如果大家的windows10没有安装WSL2的话,请选择 Hyper-V backend and Windows containers

在 Mac 系统上安装 Docker

请下载安装 Docker Desktop for Mac, 注意版本

https://docs.docker.com/docker-for-mac/install/

intel芯片,请选择 Mac with intel chip
M1芯片,请选择 Mac with Apple chip

拉取镜像:

可以从 Docker Hub 等镜像仓库中拉取所需的镜像。
例如,要拉取一个 Ubuntu 镜像,可以使用以下命令:

docker pull ubuntu
运行容器:

使用拉取的镜像可以创建并运行一个容器。
例如,要运行一个 Ubuntu 容器,可以使用以下命令:

docker run -it ubuntu /bin/bash
构建镜像:

如果需要创建自己的镜像,可以使用 Dockerfile 来定义镜像的内容。
Dockerfile 是一个文本文件,包含了一系列的指令,用于构建镜像。
例如,以下是一个简单的 Dockerfile:

FROM ubuntu
     RUN apt-get update && apt-get install -y nginx
     EXPOSE 80
     CMD ["nginx", "-g", "daemon off;"]
可以使用以下命令构建这个镜像:
docker build -t my-nginx.

五、容器编排

Kubernetes:

是一个开源的容器编排平台,可以管理和调度大量的容器。
提供了自动部署、自动扩展、自动修复等功能,使得容器的管理更加方便和高效。
例如,可以使用 Kubernetes 来部署一个微服务架构的应用程序,实现高可用和弹性扩展。

Docker Compose:

是一个用于定义和运行多容器 Docker 应用程序的工具。
可以使用 YAML 文件来定义多个容器的配置和依赖关系,然后使用一个命令来启动和管理这些容器。
例如,以下是一个简单的 Docker Compose 文件:

     version: '3'
     services:
       web:
         build:.
         ports:
           - "5000:5000"
       db:
         image: mysql
         environment:
           MYSQL_ROOT_PASSWORD: password

可以使用以下命令启动这个应用程序:

docker-compose up

常用命令

一、镜像相关命令

1.从镜像仓库拉取指定的镜像。

docker pull <image_name>

例如:docker pull ubuntu 会拉取 Ubuntu 操作系统的镜像。
2.列出本地已有的镜像。

docker images

显示镜像的 ID、名称、标签、创建时间以及大小等信息。
3.删除本地的一个或多个镜像。

docker rmi <image_id>

例如:docker rmi <镜像 ID> 删除指定的镜像。
4.为一个已有的镜像打标签。

docker tag <existing_image>:<tag> <new_image>:<new_tag>

例如将一个名为myapp:v1的镜像标记为myrepo/myapp:v2,可以使用docker tag myapp:v1 myrepo/myapp:v2。

二、容器相关命令

1.指定的镜像创建并启动一个新的容器。

docker run <image_name>

可以添加各种参数,如 -d 表示以守护进程方式运行容器,-p <host_port>:<container_port> 进行端口映射等。
例如:docker run -d -p 8080:80 nginx 启动一个 Nginx 容器并将主机的 8080 端口映射到容器的 80 端口。
2.列出正在运行的容器。

docker ps

显示容器的 ID、镜像名称、启动命令、创建时间、状态以及端口映射等信息。
3.列出所有容器,包括已停止的容器。

docker ps -a

4.启动一个已停止的容器。

docker start <container_id>

5.停止一个正在运行的容器。

docker stop <container_id>

6.重启一个容器。

docker restart <container_id>

7.删除一个或多个容器。

docker rm <container_id>

可以先使用docker stop停止容器后再删除,或者添加-f参数强制删除正在运行的容器,但要谨慎使用。
8.在运行中的容器中执行命令。

docker exec -it <container_id> <command>

例如:docker exec -it mycontainer bash 在名为mycontainer的容器中打开一个 bash 终端。
9.查看容器的日志输出。

docker logs <container_id>

10.获取容器的详细信息,包括容器的配置、网络设置、挂载点等。

docker inspect <container_id>
三、其他常用命令

1.根据指定的 Dockerfile 所在目录构建一个新的镜像。

docker build -t <image_name>:<tag> <directory>

例如:docker build -t myapp:v1. 在当前目录下查找 Dockerfile 并构建名为myapp、标签为v1的镜像。
2.创建一个数据卷,用于在容器之间共享数据或持久化数据。

docker volume create <volume_name>

3.创建一个自定义的 Docker 网络,方便容器之间进行通信。

docker network create <network_name>

4.清理未使用的镜像、容器和数据卷等资源,释放磁盘空间。

docker system prune

5.显示 Docker 系统的信息,包括已安装的版本、容器和镜像的数量、存储驱动等。

docker info
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值