Docker初步使用

微小冷 2024-10-02 13:37:04 阅读 75

文章目录

基础操作示例

基础操作

Docker 包括三个基本概念

镜像<code>Image容器Container仓库Repository

用操作系统类比,镜像就是打包好的iso文件;容器就是用iso文件安装好的操作系统;仓库就是下载iso的网站。

所以,使用Docker的第一步,就是用docker pull下载镜像,通过help可查看其命令格式

>docker pull --help

Usage: docker pull [OPTIONS] NAME[:TAG|@DIGEST]

其中,NAME即镜像名称,包括仓库地址和仓库名:

仓库地址格式:<域名/IP>[:端口号],默认地址是Docker Hub。仓库名格式:<用户名>/<软件名>,在Docker Hub中默认为library,也就是官方镜像。

示例

下面以ubuntu20.04为例:

>docker pull ubuntu:20.04

docker pull ubuntu:20.04

20.04: Pulling from library/ubuntu

527f5363b98e: Pull complete

Digest: sha256:f2034e7195f61334e6caff6ecf2e965f92d11e888309065da85ff50c617732b8

Status: Downloaded newer image for ubuntu:20.04

docker.io/library/ubuntu:20.04

What's Next?

View summary of image vulnerabilities and recommendations → docker scout quickview ubuntu:20.04

如果是在Windows中报出无法连接的错误,可以打开桌面版Docker之后重试。

由于未给出仓库地址,所以从Docker Hub获取镜像,最终从官方镜像library/ubuntu仓库中获取标签为20.04的镜像。

下载时列出的哈希串表示每一层ID的前12位,结束后给出完整的哈希摘要,用以保证下载正确。

最后,还贴心第给出了下一步应该做什么的提示,按照指示,来预览一下ubuntu20.04

docker scout quickview ubuntu:20.04

INFO New version 1.2.2 available (installed version is 0.20.0)

level=error msg="Status: login using Docker Desktop or 'docker login' command: no credential found for \"index.docker.io\", Code: 1"code>

下载完成后,就可以通过run来启动这个镜像中的指令了,例如

>docker run --rm ubuntu:20.04 cat /etc/os-release

NAME="Ubuntu"code>

VERSION="20.04.6 LTS (Focal Fossa)"code>

ID=ubuntu

ID_LIKE=debian

PRETTY_NAME="Ubuntu 20.04.6 LTS"code>

VERSION_ID="20.04"code>

HOME_URL="https://www.ubuntu.com/"code>

SUPPORT_URL="https://help.ubuntu.com/"code>

BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"code>

PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"code>

VERSION_CODENAME=focal

UBUNTU_CODENAME=focal

cat是大家熟悉的文本查看指令,可见docker run的确执行了ubuntu中的程序。其中,run后面的--rm表示执行完命令后删除容器。

docker run当然也可以直接进入容器的命令行bash shell

>docker run -it --rm ubuntu:20.04 bash

root@b29634ace3cf:/# exit

exit

其中,-it中的i表示交互式执行,t表示进入终端。进入之后什么都没做,用exit退出了终端。

通过image ls可以列出镜像,目前只有一个ubuntu20.04。

>docker image ls

REPOSITORY TAG IMAGE ID CREATED SIZE

ubuntu 20.04 f78909c2b360 2 weeks ago 72.8MB

通过docker ps -a可列出所有容器,由于在创建Ubuntu容器时使用了--rm,所以目前的容器是空的。若重新运行一次Ubuntu,但并不使用--rm参数,则ps -a会返回这个容器。

>docker run ubuntu:20.04

>docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS

3f48dfc691b5 ubuntu:20.04 "/bin/bash" 4 seconds ago Exited (0)

若想将其删除,如在运行可先用stop停止运行,再用rm删除。

>docker stop 3f48dfc691b5

3f48dfc691b5

>docker rm 3f48dfc691b5

这回再运行ps -a就不会显示这个容器了。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。