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

news2024/9/20 8:40:06

【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.coloradmin.cn/o/1666879.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Matlab 验证 复数的幂计算规则

复数的幂计算规则 close all a9; b0:0.1:5;result1 exp(1j*2*pi*a.*b); result2 (exp(1j*2*pi*a)).^b; idxfind(result1result2); b_idxb(idx);figure plot(b,angle(result1(:)),-r*) hold on plot(b,angle(result2(:)),bo) grid on

C++内存管理(1)

目录 1.new用法说明 2.new/delete在栈里面的运用 3.operator new/operator delete函数 4.构造函数的显式调用 5.malloc&&new&&free&&delete区别 1.new用法说明 (1)在C语言阶段,我们无论是为数组开辟空间&#x…

Disk Map for Mac,让您的Mac更“轻”松

还在为Mac磁盘空间不足而烦恼吗?Disk Map for Mac来帮您轻松解决!通过独特的TreeMap视觉显示技术,让您一眼就能看出哪些文件和文件夹占用了大量空间。只需简单几步操作,即可快速释放磁盘空间,让您的Mac更“轻”松。快来…

STL-Hashtable

hashtable hashtable是通过某种函数(hashFunc)使元素的存储位置与它的关键码之间能够建立一一映射的关系,这样在查找的时候就可以很快的找到该元素。 哈希函数 哈希函数的定义域必须包括需要存储的全部关键码,而如果散列表允许有m个地址时&#xff0c…

Web UI自动化测试--PO模式

没有PO实现的测试用例的问题: 重用性低:登录功能重复可维护性差:数据和代码混合可读性差:元素定位方法杂乱(id、xpath、css混杂)可读性差:不易识别操作的含义(特别是css和xpath语法)可维护性差:如果某个元素的属性改了,你要更改多次PO(Page Object Model)页面对象模型…

Linux 第二十八章

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

C# SolidWorks 二次开发 -从零开始创建一个插件(3) 发布插件

五一节过完了吧,该上班学习了吧? 如何把自己开发好的程序优雅的给别人使用。 今天我们来简单讲解一下,这个之前不少粉丝咨询过相关问题,自己开发好的东西,如何给同事或者其它人使用。 先列一下使用到的主要工具&am…

计算机毕业设计】springbootBBS论坛系统

本系统为用户而设计制作 BBS论坛系统,旨在实现BBS论坛智能化、现代化管理。本BBS论坛自动化系统的开发和研制的最终目的是将BBS论坛的运作模式从手工记录数据转变为网络信息查询管理,从而为现代管理人员的使用提供更多的便利和条件。使BBS论坛系统数字化…

SpringCloud使用Nacos作为配置中心实现动态数据源切换

一、Nacos-Server 了解Nacos可以直接阅读官方文档 使用Nacos,我们需要有Nacos-Server,此处就不使用官方提供的release版本了,而是自己编译,因为本来就是Java开发的,所以对于Javaer来说也没啥难度! git c…

解决NVM 下载node.js慢问题->最新镜像

一、NVM 介绍 nvm是node版本管理工具,可以运行在多种操作系统上。这里主要记录一下在windows系统的安装和使用。 在使用过程中,下载其他版本时会出现下载慢或卡住或下载失败的情况,是因为服务器在国外,网络原因导致,…

【神经网络】输出层的设计

文章目录 前言一、恒等函数和softmax函数恒等函数softmax 函数python实现softmax函数 二、实现softmax函数时的注意事项函数优化python实现 三、softmax函数的特征计算神经网络的输出输出层的softmax函数可以省略“学习”和“推理”阶段 四、输出层的神经元数量 前言 神经网络…

03.Linux文件操作

1.操作系统与Linux io框架 1.1 io与操作系统 1.1.1 io概念 io 描述的是硬件设备之间的数据交互,分为输⼊ (input) 与输出 (output)。 输⼊:应⽤程序从其他设备获取数据 (read) 暂存到内存设备中;输出:应⽤程序将内存暂存的数据…

FreeRTOS学习笔记-基于stm32(6)时间片调度实验

1、什么是时间片调度 在任务优先级相同的时候,CPU会轮流使用相同的时间去执行它,即时间片调度。这个相同的时间就是时间片。而时间片的大小就是SysTick的中断周期(SysTick的中断周期可以修改)。 比如有三个相同优先级的任务在运行…

基于C++基础知识的指针

一、变量与指针 在C中,变量是用来存储数据的一个标识符,而指针是一个变量,该变量存储的是另一个变量的地址。 变量可以是不同的数据类型,包括整数、浮点数、字符、布尔值等。在声明变量时,需要指定变量的数据类型和标…

差分约束 C++ 算法例题

差分约束 差分约束 是一种特殊的 n 元一次不等式组,m 个约束条件,可以组成形如下的格式: { x 1 − x 1 ′ ≤ y 1 x 2 − x 2 ′ ≤ y 2 ⋯ x m − x m ′ ≤ y m \begin{cases} x_1-x_1^{} \le y_1 \\ x_2-x_2^{} \le y_2 \\ \cdots \\ x_…

TCP的四次挥手过程

TCP连接是双向传输的对等的模式(全双工模式),就是说双方都可以同时向对方发送或接收数据。 而断开的时候,也是双方都可以主动断开,此时需要经过四次挥手的过程,流程如下图所示: 主动方发送FIN包…

HTTP1.1的优化措施

3.2 HTTP/1.1 如何优化? 可以从以下三个方面来优化http/1.1协议: 尽量避免发送 HTTP 请求; 在需要发送 HTTP 请求时,考虑如何减少请求次数; 减少服务器的 HTTP 响应的数据大小; 避免发送HTTP请求 对于…

智能文件夹改名助手:一键秒级恢复原始名称,轻松告别繁琐操作,提升文件管理效率

文件夹管理成为了我们日常工作和生活中不可或缺的一部分。然而,随着文件数量的不断增加和文件夹命名的复杂性,我们经常面临着重命名文件夹的繁琐操作。你是否曾经因为误改文件夹名称而头疼不已?是否曾经为了找回原始名称而耗费大量时间&#…

将CentOS 7安装在U盘上,这时你将体验到......

文章目录 前言一、Linux 是什么?二、使用步骤1.下载安装 VMware Workstation Pro2.下载 CentOS 镜像3.准备一个U盘(最好是32G以上的)4.VMware 里安装 CentOS 总结 前言 随着 Linux 在服务器、嵌入式系统、移动设备等领域的广泛应用&#xff…