0


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

【Docker】docker的基本使用方法

镜像image与容器container的关系

在这里插入图片描述

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

优点:

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

基本命令

- 查看 Docker 版本

sudodocker--version

- 拉取镜像

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

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

在这里插入图片描述

- 查看系统中的镜像

sudodocker images

- 删除某个镜像

sudodocker rmi 镜像ID或镜像名:tag

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

sudodockerps-a

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

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

- 进入正在运行的容器

sudodockerexec-it 容器名 /bin/bash

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

- 退出容器

ctrl + d

- 删除容器

sudodockerrm container_name_or_id

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

sudodocker start CONTAINER_ID_OR_NAME

- 停止正在运行的容器

sudodocker 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)

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

- 根据容器创建镜像

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

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

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

- 将镜像保存为压缩包

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

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

- 加载镜像

sudodocker load --input my_image.tar
sudodocker load -i test_tar.tar

参考文献

  • Docker封装anaconda环境,生成镜像并打包,纯小白一文读懂(二)
标签: docker eureka 容器

本文转载自: https://blog.csdn.net/Ever_____/article/details/138698396
版权归原作者 几度热忱 所有, 如有侵权,请联系我们删除。

“【Docker】Ubuntu下Docker的基本使用方法与常用命令总结”的评论:

还没有评论