Docker入门到放弃,看这篇就够了🚀🚀🚀

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Docker入门到放弃,看这篇就够了🚀🚀🚀


🚀 Docker 简介

Docker 是一种开源的容器化平台,用于构建、运行、分享应用程序

使用 Docker 的好处包括:

  • 「便携性」:容器化的应用程序可以在不同的环境中运行,无论是开发、测试还是生产环境,从而提供了更高的可移植性和一致性。
  • 「隔离性」:Docker 容器提供了隔离的运行环境,使应用程序之间相互隔离,避免了潜在的冲突和依赖关系问题。
  • 「资源利用率」:Docker 的轻量级容器共享主机操作系统的内核,因此可以更高效地利用系统资源。
  • 「快速部署」:Docker 可以快速地创建、运行和销毁容器,使应用程序的部署过程更加简化和高效。
  • 「可扩展性」:Docker 允许水平扩展应用程序,通过在多个容器实例之间分发负载来提高性能和可靠性。

说到隔离性,你可能会想到虚拟机,在这个方面,他们的确很像,但是不同的是,Docker的多个镜像之间是共用宿主机的操作系统和硬件的,而每个虚拟机都有属于自己的操作系统。

🚀 Docker 安装

在官网下载对应的安装包:https://www.docker.com/

安装之后会重启电脑,如果你是 window 平台,那么你还需要安装 wsl

管理员身份运行 cmd ,然后运行 wsl --install

如果启动之后仍报错,那么需要运行 wsl --update

如果这时报错如下问题,你可以在命令行运行:netsh winsock reset

An unexpected error was encountered while executing a WSLcommand. Common causes include access rights issues, which occurafter waking the computer or not being connected to your domain/active directory.
Please try shutting WSL down (wsl --shutdown) and/or rebooting yourcomputer. If not sufficient, WSL may need to be reinstalled fully. As alast resort, try to uninstall/reinstall Docker Desktop.
lf the issue persistsplease collect diagnostics and submit an issue ([Overview](https://link.zhihu.com/?target=https%3A//docs.docker.com/desktop/troubleshoot/overview/%23diagnose-from-theterminal)). Error details:2 errors occurred:

如果报错: 'netsh' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

你需要在控制台进入netsh目录:

进入:
C:\Windows\System32\netsh
# 运行
winsock reset
C:\Program Files\Docker\Docker>C:\Windows\System32\netsh
netsh>netsh winsock reset
找不到下列命令: netsh winsock reset。
netsh>winsock reset
成功地重置 Winsock 目录。
你必须重新启动计算机才能完成重置。
netsh>

🚀 Docker 的一些概念

🎉 1. 镜像

镜像是容器的构建模板。它包含了一个完整的文件系统,以及运行应用程序所需的所有设置、依赖项和代码。镜像是只读的,可以用来创建多个容器实例。

🎉 2. 容器

Docker 使用容器来打包应用程序及其所有依赖项,包括操作系统、库、工具和运行时环境。容器是一个独立、轻量级的可执行单元,可以在任何地方运行。

🎉 3. 镜像仓库

镜像仓库是用于存储和分发 Docker 镜像的中央存储库。Docker Hub 是一个公共的镜像仓库,你可以在其中找到许多官方和社区创建的镜像。此外,你还可以搭建私有的镜像仓库来存储和分享自己创建的镜像。

🎉 4. 数据卷

数据卷是一种用于在 Docker 容器和主机之间持久化存储数据的机制。数据卷可以独立于容器存在,并且在容器被删除后数据仍然保留。

🎉 5. Docker 引擎

Docker 引擎是 Docker 的核心组件,负责构建、运行和管理容器。它使用容器化技术来隔离不同的应用程序和进程,使它们可以在同一台主机上独立运行。

🚀 Docker 的一些操作

🎉 1.镜像的一些操作

查看镜像

安装成功后,运行docker images: 仅展示运行中的镜像

C:\Users\98480>docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
C:\Users\98480>

构建镜像

镜像的获取方法有两种,一种是通过 docker build 构建,

另一种是从镜像仓库中拉取。

使用 Dockerfile 构建自己镜像

Dockerfile 是一种文本文件,用于定义 Docker 镜像的构建过程。你可以在 Dockerfile 中编写一系列指令,用于指定基础镜像、安装软件包、复制文件等操作。然后使用 docker build 命令根据 Dockerfile 构建镜像。以下是构建镜像的基本步骤:

  1. 创建 Dockerfile 文件
FROM node:14.4-alpine3.12.1
COPY package.json  ./
RUN npm install
COPY ./ .
RUN npm run build
  1. 使用 docker build
# 命令格式如下:
# docker build -tag <镜像名称>:<标签>
docker build -t myImage:0.0.1
拉取镜像

Docker Hub 或其他 Docker Registry 拉取镜像

docker pull registry_url/repository:tag

删除镜像

如果你想删除镜像可以使用

docker rmi ubuntu:latest
# 强制删除一个镜像
docker rmi -f ubuntu:latest

正常情况下,如果要删除的镜像正在被一个或多个容器使用,或者有基于它的其他镜像存在,docker rmi 命令会拒绝删除。

使用 -f 标志可以强制删除镜像,即使它有相关的容器或其他镜像。

请注意,这可能导致正在运行的容器出现问题,因为它们可能无法找到所需的镜像。

导出和导入镜像

使用 docker save 命令可以将镜像保存为 tar 归档文件,使用 docker load 命令可以从 tar 归档文件中加载镜像

# 到处镜像 -o为 --output
docker save -o myimage.tar myimage:tag
# 导入镜像 -i为 --input
docker load -i myimage.tar

上传镜像

# 登录docker
docker login
# 标记镜像
docker tag local_image:tag registry_url/repository:tag
# 上传镜像
docker push registry_url/repository:tag

🎉 2.容器的一些操作

创建容器

使用 docker create 命令可以创建一个新的容器,但不会自动启动它

docker create --name mycontainer myimage:tag

创建并运行容器

使用 docker run 命令可以基于镜像创建和运行容器

# 该命令会在前台打印信息
docker run --name mycontainer myimage:tag
# -d为后台运行,不会打印运行信息
docker run -d --name mycontainer myimage:tag

启动容器

使用 docker start 命令可以启动一个已创建但未运行的容器

docker start mycontainer

停止容器

使用 docker stop 命令可以停止正在运行的容器

docker stop mycontainer

重启容器

使用 docker restart 命令可以重启一个正在运行的容器

docker restart mycontainer

列出容器

使用 docker ps 命令可以列出当前正在运行的容器

docker ps

列出所有容器

使用 docker ps -a 命令可以列出所有的容器,包括运行中和已停止的容器

docker ps -a

进入容器

使用 docker exec 命令可以在运行中的容器内执行命令

docker exec -it mycontainer bash

删除容器

使用 docker rm 命令可以删除指定的容器

docker rm mycontainer

查看容器日志

使用 docker logs 命令可以查看容器的日志输出

docker logs mycontainer

🎉 3 数据卷的操作

创建数据卷

可以使用 -v--volume 参数来创建数据卷并将其挂载到容器中

docker run -v /path/on/host:/path/in/container myimage

列出数据卷

可以使用 docker volume ls 命令列出所有的数据卷

docker volume ls

查看数据卷信息

可以使用 docker volume inspect 命令查看特定数据卷的详细信息

docker volume inspect myvolume

删除数据卷

可以使用 docker volume rm 命令删除指定的数据卷

docker volume rm myvolume

挂载数据卷到容器

可以使用 docker run 命令的 -v--volume 参数将数据卷挂载到容器中

docker run -v myvolume:/path/in/container myimage
  1. 备份和恢复数据卷:可以使用工具或命令行将数据卷的内容备份到本地文件系统,然后在需要时进行恢复。
# 备份
docker run --rm -v myvolume:/data -v /path/to/backup:/backup busybox tar cvf /backup/backup.tar /data
# 恢复
docker run --rm -v myvolume:/data -v /path/to/backup:/backup busybox tar xvf /backup/backup.tar -C /data
  1. 共享数据卷:可以将同一个数据卷同时挂载到多个容器,实现容器之间的数据共享。
docker run -v myvolume:/path/in/container1 myimage1
docker run -v myvolume:/path/in/container2 myimage2

数据卷是以独立于容器的方式存在的,因此即使删除容器,数据卷的内容仍然保留。这使得数据卷非常适合用于持久化存储和与容器无关的数据。

🚀 最后

好了,今天我们就分享到这了,本篇分享的是一些基础操作,下篇文章,将会详细介绍一些高级功能,敬请期待!!!

相关实践学习
通过workbench远程登录ECS,快速搭建Docker环境
本教程指导用户体验通过workbench远程登录ECS,完成搭建Docker环境的快速搭建,并使用Docker部署一个Nginx服务。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
15小时前
|
关系型数据库 MySQL Java
Docker Compose详细教程(从入门到放弃)
Docker Compose详细教程(从入门到放弃)
237 0
|
15小时前
|
存储 虚拟化 数据中心
|
15小时前
|
Ubuntu 应用服务中间件 Shell
Docker入门
Docker入门
25 0
|
15小时前
|
存储 Ubuntu Linux
Docker 从入门到实践:Docker介绍
Docker 从入门到实践:Docker介绍
|
15小时前
|
应用服务中间件 持续交付 nginx
【Docker专栏】Docker入门指南:快速构建你的第一个容器
【5月更文挑战第7天】Docker 入门指南:容器化应用利器。了解 Docker 核心概念——镜像、容器和仓库。安装 Docker 后,运行官方 `hello-world` 验证安装,再尝试运行 `nginx` Web 服务器。通过端口映射访问容器内服务,学习管理容器命令。创建自定义镜像,编写 Dockerfile,实现 Python Web 应用容器化。Docker 助力高效开发与运维,探索更多自动化部署与微服务场景。
【Docker专栏】Docker入门指南:快速构建你的第一个容器
|
15小时前
|
安全 Linux 数据库
Docker 入门详解
通过遵循这些步骤,你将能够快速入门 Docker 并开始探索容器化的世界,关注 V 哥,技术之路一起成长。
|
15小时前
|
存储 Apache Swift
无限套娃_docker入门(镜像、容器、仓库)
无限套娃_docker入门(镜像、容器、仓库)
31 0
|
15小时前
|
Linux 虚拟化 Docker
docker入门
docker入门
23 2
|
15小时前
|
存储 运维 Docker
Docker从入门到精通:Docker 容器数据卷详解
Docker 数据卷是持久化容器数据的关键机制,允许跨容器或主机共享,即使容器删除数据仍保留。创建数据卷可通过命令行或容器启动时指定,挂载到容器目录以读写。使用 `docker volume` 命令可管理数据卷,适用于持久化存储、数据共享及备份场景。了解和善用数据卷能优化 Docker 应用程序的运维。
23 0
|
15小时前
|
监控 Docker 容器
Docker从入门到精通:Docker log 命令学习
了解 Docker 日志管理对容器监控至关重要。`docker logs` 命令用于查看和管理容器日志,例如,`docker logs &lt;container_name&gt;` 显示容器日志,`-f` 或 `--follow` 实时跟踪日志,`--tail` 显示指定行数,`--timestamps` 添加时间戳,`--since` 按日期筛选。Docker 支持多种日志驱动,如 `syslog`,可通过 `--log-driver` 配置。有效管理日志能提升应用程序的稳定性和可维护性。
17 0