从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库

上次我们认识了docker,了解了docker的相关概念:镜像,容器,仓库

面试官让你介绍一下docker,别再说不知道了

那么这次我们就来上手一下docker,在这之前你需要安装docker到你的机器上面,这次我们就用Windows机器来演示docker,如果你不知道怎么安装,请参考windows10安装docker

我们先来看一下docker镜像有哪些命令

镜像 

查看docker镜像列表

docker images

这个命令会列出你在本地下载或者创建的所有镜像,包括镜像的名称、标签、ID、创建时间以及大小等信息。通过这个命令,你可以随时查看自己有哪些镜像可用,或者确认某个镜像是否已经下载到本地。

从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库

拉取 Docker 镜像

如果你想从 Docker 仓库(比如 Docker Hub)获取一个新的镜像,可以使用 docker pull 命令。例如,如果你想拉取一个官方的 nginx 镜像,可以执行以下命令:

docker pull nginx

这个命令会从 Docker Hub 下载最新版本的 nginx 镜像到你的本地。下载完成后,你可以使用 docker images 再次查看,确认这个镜像已经存在。

从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库

指定版本拉取 Docker 镜像

有时候,你可能不想拉取镜像的最新版本,而是想要某个特定的版本。这时,你可以通过 docker pull 命令加上镜像名和标签(tag)来拉取指定版本的镜像。格式如下:

docker pull 镜像名:tag

例如,如果你想拉取 nginx 的 1.19 版本,可以执行以下命令:

docker pull nginx:1.19

这里的 :1.19 就是镜像的标签,表示你要拉取的特定版本。标签通常用来标识不同的版本或变体,比如某个软件的最新稳定版、测试版或历史版本。通过指定标签,你可以确保拉取的镜像是你所需要的那个版本。

从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库

如果你省略了标签部分,比如就像上面那样,Docker 会默认拉取这个镜像的最新版本(latest 标签)。

删除 Docker 镜像

当你不再需要某个镜像时,可以通过 docker rmi 命令将其删除,释放空间。例如,如果你想删除我们刚刚拉取的 nginx 镜像,可以这样做:

docker rmi nginx

注意,如果某个镜像正被某个容器使用,你会需要先停止并删除相关的容器才能删除这个镜像。

从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库

强制删除 Docker 镜像

有时你可能需要删除某个镜像,但该镜像可能正被其他容器使用,或者因为某些依赖关系导致无法正常删除。此时,你可以使用 docker image rm 命令加上 -f 参数来强制删除镜像。格式如下:

docker image rm -f 镜像名称/镜像ID

例如,如果你想强制删除一个名为 nginx 的镜像,可以执行以下命令:

docker image rm -f nginx

或者,如果你想根据镜像的 ID 来删除(镜像 ID 通常是镜像名称的简写),可以这样做:

docker image rm -f 123456789abc

这里的 -f 参数表示“force”,即强制删除,无论该镜像是否正在被使用或是否有依赖容器。请注意,使用 -f 强制删除镜像时要谨慎,因为这可能会影响正在运行的容器,或破坏相关联的其他镜像或依赖项。

从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库

搜索 Docker 官方镜像

如果你想查找某个镜像,可以使用 docker search 命令。例如,如果你想找 nginx 的官方镜像,可以执行以下命令:

docker search nginx

这个命令会在 Docker Hub 上搜索包含 “nginx” 关键字的所有镜像,并显示一系列相关的镜像列表。你会看到每个镜像的名称、描述、星级评分(由社区用户给出)、是否为官方镜像以及其他信息。官网的镜像搜索地址为  https://hub.docker.com/search

在搜索结果中,你可以看到一行 nginx,带有 “OFFICIAL” 标记,这表明它是由 Docker 官方维护的镜像,通常可以放心使用。

从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库

构建镜像

docker build -t appname:apptag . 

使用dockerFile构建镜像,“.” 表示当前目录,会把当前目录下所有文件都上传到docker

这些是基本的docker的镜像的命令,现在我们来看一下docker容器的命令。

容器 

容器是 Docker 的核心概念之一,它是基于镜像运行的独立实例,容器运行的过程相当于将镜像“实例化”并启动起来。

Docker 容器命令可以帮助你创建、启动、停止、查看和删除容器。让我们从一些常见的容器命令开始。

启动一个容器

要基于某个镜像启动一个容器,可以使用 docker run 命令。例如:

docker run -d -p 8089:80 nginx

这个命令会从 nginx 镜像启动一个新的容器,并将主机的 8089 端口映射到容器的 80 端口。-d 参数表示容器在后台运行。启动后,你可以通过访问 http://localhost:8089 来查看 nginx 容器的服务。

从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库

查看正在运行的容器

要查看当前所有正在运行的容器,可以使用以下命令:

docker ps
从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库

这个命令会列出所有正在运行的容器,包括容器 ID、使用的镜像、创建时间、状态、暴露的端口以及容器名称等信息。如果你想查看所有的容器(包括停止的),可以加上 -a 参数:

docker ps -a

停止一个运行中的容器

如果你想停止某个正在运行的容器,可以使用 docker stop 命令,后面跟上容器的 ID 或名称。例如:

docker stop 容器ID或名称
从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库

启动一个已停止的容器

要重新启动一个已停止的容器,可以使用 docker start 命令。例如:

docker start 容器ID或名称

这个命令会将指定的容器从停止状态重新启动,而不需要重新创建容器。

从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库

删除一个容器

如果你不再需要某个容器,可以使用 docker rm 命令将其删除。例如:

docker rm 容器ID或名称

在删除之前,确保容器已经停止。如果容器还在运行,可以先使用 docker stop 停止它,或者直接使用 -f 参数强制删除:

docker rm -f 容器ID或名称

进入一个正在运行的容器

有时,你可能需要进入一个正在运行的容器,检查其内部情况或执行一些命令。可以使用 docker exec 命令。例如:

docker exec -it 容器ID或名称 /bin/bash

这个命令会启动一个交互式的 shell(通常是 bash),让你直接进入容器的命令行环境。

除此之外,我们还可以在run的时候加**-it**进入容器,就像这样

从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库
从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库

现在我们已经知道了容器的命令,我们现在来看一下仓库的相关命令

仓库 

仓库是 Docker 镜像的存储和分发中心,类似于代码的版本控制系统。通过 Docker 仓库,你可以方便地分享和部署镜像。Docker 的仓库操作主要包括上传、下载、登录和登出等命令。下面我们一一来看这些命令的用法。

登录 Docker 仓库

在你推送镜像到一个私有仓库之前,通常需要先登录。使用 docker login 命令可以登录到 Docker Hub 或其他 Docker 仓库。命令如下:

docker login

执行这个命令后,系统会提示你输入用户名和密码。登录成功后,你就可以将本地的镜像推送到远程仓库。

如果本地已经登录过docker desktop了,则会直接登录成功

从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库

推送镜像到仓库

要将本地的镜像推送到 Docker 仓库(比如 Docker Hub),可以使用 docker push 命令。推送前,你需要确保镜像被正确标记(即命名),通常格式是 仓库地址/用户名/镜像名:标签。例如:

docker tag my-app:latest username/my-app:latest
docker push username/my-app:latest
如:
docker tag nginx:latest masiyi/my-app:latest
docker push masiyi/my-app:latest

这会将本地的 my-app 镜像推送到你在 Docker Hub 的个人仓库中。推送完成后,其他用户可以从你的仓库中拉取这个镜像。

从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库

这里要多试几次,因为网络有可能会有问题

出现如图的之后说明已经推送成功,这个时候可以去仓库看一下

https://hub.docker.com/repositories

从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库

可以看到成功推送了

拉取镜像

如果你想从仓库中下载某个镜像,可以使用 docker pull 命令。比如,下载之前推送到 Docker Hub 的镜像,可以这样做:

docker pull username/my-app:latest
如:
docker pull masiyi/my-app:latest

这个命令会从仓库中拉取指定的镜像到本地,如果没有指定标签,则默认拉取 latest 标签的版本。

从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库

这里也要多试几次,因为网络有可能会有问题

登出 Docker 仓库

当你不再需要与某个仓库交互时,可以使用 docker logout 命令登出:

docker logout

这个命令会将你从当前的 Docker 仓库中登出,确保你的账户信息不会继续保存在本地机器上。

从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库

列出本地的仓库

上面已经讲过,虽然不算严格意义上的仓库命令,但你可以通过 docker images 命令查看本地所有的镜像,了解哪些镜像已经在你的机器上,可以随时推送到仓库。

docker images

从镜像到容器,再到仓库的操作,相信大家对 Docker 有了一个初步的认识。其实docker的命令远不止这些,但是因为篇幅原因,我们下次再说。

[图片]
从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库

原文始发于微信公众号(掉头发的王富贵):从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/315695.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!