首页 > 其他分享 >Docker的安装及常用命令

Docker的安装及常用命令

时间:2024-09-28 12:18:55浏览次数:9  
标签:容器 可以 应用程序 常用命令 镜像 Docker 安装 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

标签:容器,可以,应用程序,常用命令,镜像,Docker,安装,docker
From: https://blog.csdn.net/wang_4212/article/details/142586581

相关文章

  • Stable Diffusion绘画 | AnimateDiff:用AI制作动画(附插件安装包)
    使用AnimateDiff插件,我们只需要按时间节点,输入不同的提示词,就可以非常轻松地生成一系列丝滑的动画。AnimateDiff的底层技术框架,是由上海人工智能实验室&香港中文大学&斯坦福大学联合研发的,它能很好地结合SD的各种模型,以及配合ControlNet和Upscale来生成出......
  • docker常用命令
     查看本地镜像:$sudodockerimages删除镜像$sudodockerrmi<TAG>批量删除镜像$sudodockerrmi$(dockerimages-q-a)删除已经执行容器:$sudodockerrm容器ID 停止正在运行的容器:$sudodockerstop容器ID 启动镜像:$sudodockerr......
  • docker 安装
    环境RockyLinux9.4移除原有的dockerdnfremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\do......
  • 【2024版】最简单的Python安装 | Pycharm专业版激活码教程(新手小白都能学会)
    Python环境的安装1.下载安装程序:•打开浏览器,在Python官方网站上可以下载打包好的安装包在这里......
  • pyenv安装 配合ansible使用
    目录pyenv简介安装pyenv依赖包安装pyenvpyenv-virtualenv设置参数下载指定版本代码虚拟环境操作退出会话,再重新登录,进入虚拟环境,能查看到ansible版本号,具体原因未明确pyenv简介pyenv用于安装、切换和管理不同版本的Python,确保项目在正确的Python环境中运行安装多个Pyt......
  • 在Linux上安装Cliosoft SOS的具体步骤是什么?
    在Linux上安装ClioSoftSOS的具体步骤如下。这些步骤包括了从下载软件包到完成安装的全过程,确保您能够顺利地在Linux系统上安装和配置SOS。1.准备工作检查系统要求:确保您的Linux系统满足SOS的硬件和软件要求。创建安装目录:建议使用一个专用目录来存放SOS的安装文件。例如:......
  • XMind 2024安装教程和下载及如何使用图像库功能
    XMind2024作为思维导图软件的最新版本,带来了一些重要的新功能和改进:界面升级:XMind2024采用了更加现代化和简洁的用户界面,使操作更加直观,提升了用户体验。增强的跨平台支持:支持Windows、macOS、Linux、iOS和Android多平台同步,用户可以在不同设备间无缝切换,保持工作的一......
  • 中望ZWCAD2021新增功能及安装教程和下载
    中望ZWCAD2021引入了多个新功能和改进,进一步提升了设计效率和用户体验。以下是一些主要新增功能:暗色主题:ZWCAD2021首次引入了暗色主题,减轻长时间绘图时对眼睛的疲劳感,并为用户提供了更多视觉选择。智能语音注释:用户可以在图纸中直接录制语音注释,为设计增加语音说明,便于团......
  • docker:镜像构建、仓库、压缩、导入 二
    docker:镜像构建、仓库、压缩、导入二构建镜像:(无需网络)dockercommit-m="描述"-a="作者"容器id镜像名:版本号镜像仓库与推送镜像到仓库dockerpush镜像名:[tags]压缩镜像:dockersave镜像名:版本号#更推荐:dockersavexxx:yyy|gzip-9>zzzzz.tar.gz导入镜像:......
  • Docker 容器数据卷 三
    Docker容器数据卷三挂载容器卷后台示例dockerrun-d-it--nameweb1-v/data/web/:/usr/share/nginx/html/-p8080:80nginx前台示例dockerrun-it--namemyu-v/tmp/myHostData:/tmp/myDockerDatanginx/bin/bash确定是否挂载dockerinspect容器ID/容器名挂......