文章目录
基础操作
Docker 包括三个基本概念
- 镜像
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"
下载完成后,就可以通过
run
来启动这个镜像中的指令了,例如
>docker run --rm ubuntu:20.04 cat /etc/os-release
NAME="Ubuntu"VERSION="20.04.6 LTS (Focal Fossa)"ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"VERSION_ID="20.04"HOME_URL="https://www.ubuntu.com/"SUPPORT_URL="https://help.ubuntu.com/"BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"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:/# exitexit
其中,
-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
就不会显示这个容器了。
版权归原作者 微小冷 所有, 如有侵权,请联系我们删除。