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

【Docker】docker的基本使用方法

  • 镜像image与容器container的关系
  • 基本命令
    • - 查看 Docker 版本
    • - 拉取镜像
    • - 查看系统中的镜像
    • - 删除某个镜像
    • - 列出当前 Docker 主机上的所有容器,包括正在运行的、暂停的、已停止的,以及未运行的容器
    • - 列出当前 Docker 主机上的正在运行的容器
    • - 进入正在运行的容器
    • - 退出容器
    • - 删除容器
    • - 使用 docker start 命令后跟容器 ID 或名称来启动容器
    • - 停止正在运行的容器
    • - 启动docker服务
    • - 停止docker服务
    • - 重启docker服务
    • - 检查docker服务状态
    • - 将本地文件或环境复制到docker容器中(需要先退出容器 ctrl + d)
    • - 根据容器创建镜像
    • - 将镜像保存为压缩包
    • - 加载镜像
    • 参考文献

镜像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

参考文献

  • Docker封装anaconda环境,生成镜像并打包,纯小白一文读懂(二)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/691609.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构与算法===贪心算法

文章目录 定义适用场景柠檬水找零3.代码 小结 定义 还是先看下定义吧,如下: 贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。 适用场景 由于…

centos7.9系统安全加固

1、限制用户登陆 vim /etc/hosts.deny,若禁止192.168.0.158对服务器进行ssh的登陆,添加如下内容 sshd : 192.168.0.158 添加完毕后就生效了,直接用192.168.0.158访问主机,就无法连接了,显示 Connection closing...Soc…

数字生态系统的演进与企业API管理的关键之路

数字生态系统的演进与企业API管理的关键之路 在数字化时代,企业正经历着一场转型的浪潮,而API(应用程序编程接口)扮演着至关重要的角色。API如同一座桥梁,将组织内部的价值转化为可市场化的产品,从而增强企…

(二)Jetpack Compose 布局模型

前文回顾 (一)Jetpack Compose 从入门到会写-CSDN博客 首先让我们回顾一下上一篇文章中里提到过几个问题: ComposeView的层级关系,互相嵌套存在的问题? 为什么Compose可以实现只测量一次? ComposeView和…

day05-面向对象内存原理和数组

day05 面向对象内存原理和数组 我们在之前已经学习过创建对象了,那么在底层中他是如何运行的。 1.对象内存图 1.1 Java 内存分配 Java 程序在运行时,需要在内存中分配空间。为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域…

ctfshow web271--web273

web271 laravel5.7反序列化漏洞 define(LARAVEL_START, microtime(true));/* |-------------------------------------------------------------------------- | Register The Auto Loader |-------------------------------------------------------------------------- | |…

数据分享—全国分省河流水系

河流水系数据是日常研究中必备的数据之一,本期推文主要分享全国分省份的水系和河流数据,梧桐君会不定期的更新数据,欢迎长期订阅。 数据预览 山东省河流水系 吉林省河流水系 四川省河流水系 数据获取方式 链接:https://pan.baidu.…

初识C语言——第十八天

循环while/do while while 语法结构 while(表达式) 循环语句; break:在while循环中,break用于永久的终止循环 continue:在while循环中,continue的作用是跳过本次循环continue后面的代码 直接去判断部分,看是否进行下一次循环。 注意事项…

工程师工具箱系列(1)MapStruct

文章目录 工程师工具箱系列(1)MapStruct芸芸众生初窥门径引入POM依赖创建转换器与方法进行使用IDEA好基友 游刃有余示例说明避免编写重复转换器实现复杂灵活转换 温故知新 工程师工具箱系列(1)MapStruct 芸芸众生 在Java项目开发…

【全开源】Java俱乐部系统社区论坛商城系统源码-奔驰奥迪保时捷大众宝马等汽车俱乐部

特色功能: 会员中心:会员中心可以帮助企业更好地管理客户,包括设置积分商城、会员卡充值、个人汽车档案等功能,对不同的会员群体展开有针对性的营销,并维护和积累自己的粉丝群体。信息服务:负责定期发布新…

【雷音系·雷修】倪琴古琴,倪诗韵亲签古琴

雷音系列雷修:“修”字取意善、美好的,更有“使之完美”之意。精品桐木或普通杉木制,栗壳色,纯鹿角霜生漆工艺。方形龙池凤沼。红木配件,龙池上方有“倪诗韵”亲笔签名,凤沼下方位置处有“雷•修”等级葫芦…

谷歌最强AI——Gemini免费使用2个月教程,性能抗衡GPT4

谷歌最强AI——Gemini采用的是Ultra 1.0大模型,功能非常强大,媲美GPT-4!谷歌用户只需要绑定虚拟卡,就可以免费使用2个月! 谷歌昨夜官宣四项AI新进展! 1、最大、功能最强的大模型版本Gemini Ultra 1.0全面…