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就不会显示这个容器了。

相关推荐
Rain_Rong10 分钟前
linux检测硬盘
linux·运维·服务器
过过过呀Glik13 分钟前
在 Ubuntu 上安装 Muduo 网络库的详细指南
linux·c++·ubuntu·boost·muduo
李昊哲小课1 小时前
deepin 安装 zookeeper
大数据·运维·zookeeper·debian·hbase
真真-真真1 小时前
WebXR
linux·运维·服务器
一勺菠萝丶1 小时前
MongoDB 常用操作指南(Docker 环境下)
数据库·mongodb·docker
Mitch3112 小时前
【漏洞复现】CVE-2015-3337 Arbitrary File Reading
elasticsearch·网络安全·docker·漏洞复现
Mitch3112 小时前
【漏洞复现】CVE-2015-5531 Arbitrary File Reading
web安全·elasticsearch·网络安全·docker·漏洞复现
wanhengidc2 小时前
短视频运营行业该如何选择服务器?
运维·服务器
雨中rain2 小时前
Linux -- 从抢票逻辑理解线程互斥
linux·运维·c++
-KamMinG3 小时前
Centos7.9安装openldap+phpldapadmin+grafana配置LDAP登录最详细步骤 亲测100%能行
运维·grafana