上次我们认识了docker,了解了docker的相关概念:镜像,容器,仓库
面试官让你介绍一下docker,别再说不知道了
那么这次我们就来上手一下docker,在这之前你需要安装docker到你的机器上面,这次我们就用Windows机器来演示docker,如果你不知道怎么安装,请参考windows10安装docker
我们先来看一下docker镜像有哪些命令
镜像
查看docker镜像列表
docker images
这个命令会列出你在本地下载或者创建的所有镜像,包括镜像的名称、标签、ID、创建时间以及大小等信息。通过这个命令,你可以随时查看自己有哪些镜像可用,或者确认某个镜像是否已经下载到本地。

拉取 Docker 镜像
如果你想从 Docker 仓库(比如 Docker Hub)获取一个新的镜像,可以使用 docker pull
命令。例如,如果你想拉取一个官方的 nginx
镜像,可以执行以下命令:
docker pull nginx
这个命令会从 Docker Hub 下载最新版本的 nginx
镜像到你的本地。下载完成后,你可以使用 docker images
再次查看,确认这个镜像已经存在。

指定版本拉取 Docker 镜像
有时候,你可能不想拉取镜像的最新版本,而是想要某个特定的版本。这时,你可以通过 docker pull
命令加上镜像名和标签(tag)来拉取指定版本的镜像。格式如下:
docker pull 镜像名:tag
例如,如果你想拉取 nginx
的 1.19 版本,可以执行以下命令:
docker pull nginx:1.19
这里的 :1.19
就是镜像的标签,表示你要拉取的特定版本。标签通常用来标识不同的版本或变体,比如某个软件的最新稳定版、测试版或历史版本。通过指定标签,你可以确保拉取的镜像是你所需要的那个版本。

如果你省略了标签部分,比如就像上面那样,Docker 会默认拉取这个镜像的最新版本(latest
标签)。
删除 Docker 镜像
当你不再需要某个镜像时,可以通过 docker rmi
命令将其删除,释放空间。例如,如果你想删除我们刚刚拉取的 nginx
镜像,可以这样做:
docker rmi nginx
注意,如果某个镜像正被某个容器使用,你会需要先停止并删除相关的容器才能删除这个镜像。

强制删除 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 search
命令。例如,如果你想找 nginx
的官方镜像,可以执行以下命令:
docker search nginx
这个命令会在 Docker Hub 上搜索包含 “nginx” 关键字的所有镜像,并显示一系列相关的镜像列表。你会看到每个镜像的名称、描述、星级评分(由社区用户给出)、是否为官方镜像以及其他信息。官网的镜像搜索地址为 https://hub.docker.com/search
在搜索结果中,你可以看到一行 nginx
,带有 “OFFICIAL” 标记,这表明它是由 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 ps

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

启动一个已停止的容器
要重新启动一个已停止的容器,可以使用 docker start
命令。例如:
docker start 容器ID或名称
这个命令会将指定的容器从停止状态重新启动,而不需要重新创建容器。

删除一个容器
如果你不再需要某个容器,可以使用 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 login
命令可以登录到 Docker Hub 或其他 Docker 仓库。命令如下:
docker login
执行这个命令后,系统会提示你输入用户名和密码。登录成功后,你就可以将本地的镜像推送到远程仓库。
如果本地已经登录过docker desktop了,则会直接登录成功

推送镜像到仓库
要将本地的镜像推送到 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 的个人仓库中。推送完成后,其他用户可以从你的仓库中拉取这个镜像。

这里要多试几次,因为网络有可能会有问题
出现如图的之后说明已经推送成功,这个时候可以去仓库看一下
https://hub.docker.com/repositories

可以看到成功推送了
拉取镜像
如果你想从仓库中下载某个镜像,可以使用 docker pull
命令。比如,下载之前推送到 Docker Hub 的镜像,可以这样做:
docker pull username/my-app:latest
如:
docker pull masiyi/my-app:latest
这个命令会从仓库中拉取指定的镜像到本地,如果没有指定标签,则默认拉取 latest
标签的版本。

这里也要多试几次,因为网络有可能会有问题
登出 Docker 仓库
当你不再需要与某个仓库交互时,可以使用 docker logout
命令登出:
docker logout
这个命令会将你从当前的 Docker 仓库中登出,确保你的账户信息不会继续保存在本地机器上。

列出本地的仓库
上面已经讲过,虽然不算严格意义上的仓库命令,但你可以通过 docker images
命令查看本地所有的镜像,了解哪些镜像已经在你的机器上,可以随时推送到仓库。
docker images
从镜像到容器,再到仓库的操作,相信大家对 Docker 有了一个初步的认识。其实docker的命令远不止这些,但是因为篇幅原因,我们下次再说。
[图片]

原文始发于微信公众号(掉头发的王富贵):从零开始玩转 Docker:一站式入门指南,带你快速掌握镜像、容器与仓库
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/315695.html