Docker初步使用

文章目录

基础操作

Docker 包括三个基本概念

  • 镜像Image
  • 容器Container
  • 仓库Repository

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

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

bash 复制代码
>docker pull --help
Usage:  docker pull [OPTIONS] NAME[:TAG|@DIGEST]

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

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

示例

下面以ubuntu20.04为例:

bash 复制代码
>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

bash 复制代码
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来启动这个镜像中的指令了,例如

bash 复制代码
>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

bash 复制代码
>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会返回这个容器。

bash 复制代码
>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删除。

bash 复制代码
>docker stop 3f48dfc691b5
3f48dfc691b5
>docker rm 3f48dfc691b5

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

相关推荐
会掉头发8 分钟前
Linux进程通信之共享内存
linux·运维·共享内存·进程通信
我言秋日胜春朝★10 分钟前
【Linux】冯诺依曼体系、再谈操作系统
linux·运维·服务器
全能全知者33 分钟前
docker快速安装与配置mongoDB
mongodb·docker·容器
饮啦冰美式41 分钟前
22.04Ubuntu---ROS2使用rclcpp编写节点
linux·运维·ubuntu
wowocpp41 分钟前
ubuntu 22.04 server 安装 和 初始化 LTS
linux·运维·ubuntu
wowocpp43 分钟前
ubuntu 22.04 server 格式化 磁盘 为 ext4 并 自动挂载 LTS
服务器·数据库·ubuntu
Lign173141 小时前
ubuntu unrar解压 中文文件名异常问题解决
linux·运维·ubuntu
大霞上仙1 小时前
Ubuntu系统电脑没有WiFi适配器
linux·运维·电脑
Karoku0662 小时前
【企业级分布式系统】Zabbix监控系统与部署安装
运维·服务器·数据库·redis·mysql·zabbix