【Docker】Ubuntu下Docker的基本使用方法与常用命令总结

镜像image与容器container的关系

在这里插入图片描述

  • 镜像是模板:Docker 镜像是一个轻量级、可执行的软件包,包含了运行一个应用程序所需的代码、运行时、库、环境变量和配置文件。镜像可以看作是容器的模板,用于创建容器的实例。
  • 镜像可以创建多个容器:同一个 Docker 镜像可以用于创建多个独立的容器实例。每个容器都有自己的文件系统、网络设置、环境变量等,彼此之间是隔离的。
  • 容器是镜像的运行实例:当运行一个 Docker 镜像时,Docker 会创建一个容器,这是镜像的沙盒实例。容器是隔离的、安全的,并且是可移植的
  • 安装了Docker的机器是宿主机,在容器内的代码不会受到宿主机环境的影响
  • 配置好的容器可以打包成镜像,可以快速迭代,方便二次开发

优点:

  • 轻量级和高效:Docker容器共享宿主机的操作系统内核,因此不需要像虚拟机那样复制整个操作系统,这使得容器比虚拟机更加轻量和高效
  • 可移植性:Docker容器可以在任何支持Docker的系统上运行,无论是开发环境、测试环境还是生产环境,都能保证一致,eg.别人的环境打包好镜像,我们拿到镜像后不用配置环境,根据该镜像生成容器就可以直接在容器里运行程序
  • 隔离性:每个容器都是相互隔离的,拥有自己的文件系统,并且运行在独立的网络环境中。这有助于防止应用之间的冲突

基本命令

- 查看 Docker 版本

sudo docker --version

- 拉取镜像

Docker Hub 是 Docker 官方提供的公共镜像仓库,可在此链接中寻找需要的镜像并拉取到本地,其中会提供拉取镜像的命令

sudo docker pull [OPTIONS] 镜像名:TAG(不输入tag则默认拉取最新版,默认TAG是latest)

在这里插入图片描述

- 查看系统中的镜像

sudo docker images

- 删除某个镜像

sudo docker rmi 镜像ID或镜像名:tag

- 列出当前 Docker 主机上的所有容器,包括正在运行的、暂停的、已停止的,以及未运行的容器

sudo docker ps -a

- 列出当前 Docker 主机上的正在运行的容器

sudo docker ps
  • 根据镜像创建一个新的容器
    -d:以 detached 模式运行容器,即在后台运行
    -t:分配一个伪终端,通常与 -i 一起使用,使得可以与容器进行交互
    -i:保持容器的标准输入(STDIN)打开,即使不附加到终端
    当使用 -d 参数时,容器会在后台运行,不会阻塞当前的命令行或终端会话。如果想启动一个交互式的会话,或者想要进入正在运行的容器,可以使用 docker exec 命令
    要实现容器一被创建就自动运行,您需要在 docker run 命令中使用 -d(detached 模式)选项。这个选项允许容器在后台运行,即不与当前的命令行或终端会话交互
sudo docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
eg. sudo docker run -d --name my_container(容器名) my_image(镜像名:tag)
    sudo docker run --name 容器名 -idt 镜像名:tag 

- 进入正在运行的容器

sudo docker exec -it 容器名 /bin/bash

这里的 -it 参数与 docker run 中的相同,/bin/bash 是您希望在容器内部启动的 shell

- 退出容器

ctrl + d

- 删除容器

sudo docker rm container_name_or_id

- 使用 docker start 命令后跟容器 ID 或名称来启动容器

sudo docker start CONTAINER_ID_OR_NAME

- 停止正在运行的容器

sudo docker stop container_name_or_id

- 启动docker服务

sudo systemctl start docker

- 停止docker服务

sudo systemctl stop docker

- 重启docker服务

sudo systemctl restart docker

- 检查docker服务状态

sudo systemctl status docker

- 将本地文件或环境复制到docker容器中(需要先退出容器 ctrl + d)

sudo docker cp /本地路径 容器名:/目标路径
eg. sudo docker cp /home/b/miniconda3/envs/yolo1.7 test:/opt/conda/envs

- 根据容器创建镜像

repository_name:tag 是为新镜像指定的名称和标签
在使用 docker commit 从容器创建镜像之前,通常需要确保容器已经停止运行

sudo docker commit [OPTIONS] CONTAINER_ID或容器名称 [REPOSITORY[:TAG]]
eg. sudo docker commit -a '作者' -m '提交说明' test image_test

-a 或 --author:设置镜像的作者字段,后面跟着作者的名字或邮箱
-m 或 --message:提交时的说明信息,通常用来描述镜像的内容或用途

- 将镜像保存为压缩包

sudo docker save --output my_image.tar my_image:my_tag
eg.sudo docker save -o test_tar.tar image_test

my_image:my_tag 是您要导出的镜像的名称和标签。如果未指定标签,将默认使用 latest

- 加载镜像

sudo docker load --input my_image.tar
sudo docker load -i test_tar.tar

参考文献

  • 28
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

几度热忱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值