【Linux 篇】Docker 启动和停止的精准掌舵:操控指南

news2025/1/20 3:52:12

文章目录

  • 【Linux篇】Docker 启动和停止的精准掌舵:操控指南
  • 前言
    • docker基本命令
        • 1. 帮助手册
        • 2. 指令介绍
    • 常用命令
        • 1. 查看镜像
        • 2. 搜索镜像
        • 3. 拉取镜像
        • 4. 删除镜像
        • 5. 从Docker Hub拉取
    • 容器的相关命令
        • 1. 查看容器
        • 2. 创建与启动容器
        • 3. 查看镜像
        • 4. 启动容器
        • 5. 查看容器
        • 6. 退出当前容器
    • 创建后台容器
        • 1. 守护式方式创建容器
        • 2. 进入守护式容器
    • 停止与启动容器
        • 1. 停止单个容器
        • 2. 启动单个容器
        • 3.文件拷贝
        • 4. 目录挂载
        • 5. 查看容器ip地址
    • 删除容器
        • 1. 删除指定的容器
        • 2. 查看正在运行的容器
        • 3. 查看所有的容器
  • 结语


【Linux篇】Docker 启动和停止的精准掌舵:操控指南

💬欢迎交流:在学习过程中如果你有任何疑问或想法,欢迎在评论区留言,我们可以共同探讨学习的内容。你的支持是我持续创作的动力!
👍点赞、收藏与推荐:如果你觉得这篇文章对你有所帮助,请不要忘记点赞、收藏,并分享给更多的小伙伴!你们的鼓励是我不断进步的源泉!
🚀推广给更多人:如果你认为这篇文章对你有帮助,欢迎分享给更多对Linux感兴趣的朋友,让我们一起进步,共同提升!

前言

docker是一个开源的应用容器引擎,基于go语言开发。docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的linux机器上,也可以是实现虚拟化。相互之间不会有任何接口,容器的开销性能极低
本文我们来介绍docker的使用方法

docker基本命令

操作描述命令
启动dockersystemctl start docker
停止dockersystemctl stop docker
重启dockersystemctl restart docker
查看docker状态systemctl status docker
开机启动systemctl enable docker
查看docker概要信息docker info
查看docker帮助文档docker --help
1. 帮助手册

指令: docker --help
在这里插入图片描述
在这里插入图片描述

2. 指令介绍
操作命令操作描述
cp在本地文件系统和容器之间进行文件或者文件夹拷贝
exec登录一个容器,使命令行操作正在运行的容器
images镜像的集合查询
ps容器列表
pull下载镜像
restart重启一个或多个容器
rm删除一个或多个容器
rmi删除一个或多个镜像
run创建一个容器并运行起来
save导出镜像到一个文件(tar)中
search搜索镜像
start启动一个或多个已经停止的容器
stop停止一个或多个正在运行的容器

常用命令

镜像的相关命令

1. 查看镜像

[root@CentOS02 docker]# docker images

REPOSITORY :镜像名称
TAG :镜像标签
IMAGE ID :镜像ID
CREATED :镜像的创建日期(不是获取该镜像的日期)
SIZE :镜像大小

这些镜像都是存储在docker的 /var/lib/docker目录下

2. 搜索镜像
[root@CentOS02 docker]# docker search tomcat

在这里插入图片描述

在这里插入图片描述
NAME :仓库名称
DESCRIPTION :镜像描述
STARS :用户评价,反应一个镜像的受欢迎程度
OFFICIAL :是否是官方
AUTOMATED:自动构建,表示该镜像有docker Hub自动构建流程创建

3. 拉取镜像

拉取镜像就是从docker仓库下载镜像到本地,镜像名称格式化为【名称:版本号】,如果版本号不指定则是最新版本

命令:docker pull 镜像名称

[root@CentOS02 docker]# docker pull jwilder/nginx-proxy

下载一个nginx的镜像,需要注意:如果下载的时候,不指定版本,会下载最新版本
在这里插入图片描述
刚刚下载的镜像通过docker images就可以查看

[root@CentOS02 docker]# docker images

在这里插入图片描述

4. 删除镜像

可以按照镜像id删除镜像,命令如下:docker rmi 镜像ID
[root@CentOS02 docker]# docker rmi 6cd25f82a14b删除多个镜像

在这里插入图片描述

删除单个镜像(-f 强制删除):docker rmi -f 镜像ID
删除多个镜像:docker rmi -f 镜像名1:TAG 镜像名2:TAG
删除所有镜像:docker rmi -f $(docker images -qa)

5. 从Docker Hub拉取

docker hub是Docker官方维护的一个公共仓库,其中已经包括了数量超过2650000的镜像;大部分需求都可以通过在Docker Hub中直接下载镜像来实现。

下载tomcat 直接粘贴
[root@CentOS02 ~]# docker pull tomcat
在这里插入图片描述

容器的相关命令

1. 查看容器

查看正在运行的容器 docker ps
查看所有容器 docker ps -a查看所有的容器 也就是相当于all
查看最后一次运行的容器 docker ps -l
查看停止的容器 docker ps -f status=exited

2. 创建与启动容器

什么是宿主机?

就是主机,这个概念是相对子机而言的,比如你安装有虚拟机的话,那么相对于虚拟机而言,你正在使用的计算机就是宿主机,虚拟机是你安装在主机上的,必须在主机上才能运行,主机就是一个宿主机。

创建容器常用的参数:
创建容器命令:docker run

-i :表示运行容器

-t :表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端

–name:为创建的容器命名

-v :表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上修改,然后共享到容器上。

-d :在run后面加上-d参数,则会创建一个守护容器在后台运行

-p :表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

(1)交互式创建容器

docker run -it --name=容器名称:标签 /bin/bash

比如:docker run -it --name=mycentos centos:7 /bin/bash 下面用到

docker run :表示创建容器
-it : 表示运行容器并进入它的命令行
–name=mycentos : 给当前容器命名

centos:7 :使用该镜像创建

/bin/bash :放在镜像后面的是命令,这里我们希望有一个交互式的shell. 因此用的就是/bin/bash

在software中新建dockerTar 新建software
在这里插入图片描述
需要执行yum -y install lrzsz命令进行安装。
安装rz进行上传文件
先上传 centos.tar
加载镜像

[root@CentOS02 dockerTar]# docker load -i centos.tar 

在这里插入图片描述

3. 查看镜像
[root@CentOS02 dockerTar]# docker images

在这里插入图片描述

4. 启动容器
[root@CentOS02 dockerTar]# docker run -it --name=mycentos7 centos:7 /bin/bash

在这里插入图片描述
创建好容器,并且已经进入到容器内部了,可以直接观察前面中括号里面的内容发现,跟容器之前的不一样了,

并且通过dir命令,会发现,其实容器内部也是一个centos,我们可以把每个容器都看成一个小电脑或者服务器

[root@2aa51717d3b5 /]# dir

在这里插入图片描述

5. 查看容器

重新开了一个新的会话,查看刚刚创建的容器是否已经有了

查看正在运行的容器 docker ps

[root@CentOS02 ~]# docker ps

在这里插入图片描述

6. 退出当前容器

: exit 退出
在这里插入图片描述
在这里插入图片描述
退出之后 ,容器也退出了,没有删除

创建后台容器

//docker run -id --name=mycentos2 cnetos:7

1. 守护式方式创建容器

创建一个守护式容器;
如果对于一个长期运行的容器来说,我们可以创建一个守护式容器。

命令如下(容器名称不能重复):守护容器可以理解成在后台运行的容器

守护式容器和交互式容器的创建方式区别:
① -it 换成-id
② 去掉后面的 /bin/bash

docker run -id --name=容器名称 镜像名称:标签
比如:docker run -id --name=mycentos7_2 centos:7

[root@CentOS02 dockerTar]# docker run -id --name=mycentos7_2 centos:7

在这里插入图片描述
通过docker ps查看容器已经是运行的状态
在这里插入图片描述

2. 进入守护式容器

docker exec -it 容器名称(或者容器ID)/bin/bash
比如:docker exec -it mycentos7_2 /bin/bash

[root@CentOS02 dockerTar]# docker exec -it mycentos7_2 /bin/bash

在这里插入图片描述
已经进入到容器内部了,如果现在退出exit,然后查看容器的docker ps是否还在后台运行
在这里插入图片描述
在这里插入图片描述

[root@CentOS02 dockerTar]# docker exec -it mycentos7_2 /bin//bash

在这里插入图片描述
关闭容器
换一个窗口
在这里插入图片描述

停止与启动容器

先通过docker ps 查看正在运行的容器

1. 停止单个容器

如果你要停止一个正在运行的 Docker 容器,可以使用以下命令:

docker stop [容器名称或容器ID]

docker stop [容器名称或容器ID]
例如,有一个名为 my_docker的容器,要停止它,可以执行:

docker stop my_docker

或者如果知道容器的 ID(假设容器 ID 是 abc123def456),则可以这样执行:

docker stop abc666
2. 启动单个容器

要启动一个已经停止的 Docker 容器,可以使用以下命令:

docker start [容器名称或容器ID]

比如要启动之前停止的名为 my_container 的容器:

docker start my_docker

若通过容器 ID 启动(假设容器 ID 为 abc123def456):

docker start abc666
3.文件拷贝

我们需要在容器内部安装一个软件,软件首选需要有安装包,我们就需要把安装包拷贝到容器内。我们通常的操作是先把文件上传到宿主机,然后我们在将文件从宿主机拷贝到容器内的某个目录下面进行安装。

将linux宿主机中的文件拷贝到容器内可以使用命令

如果我们需要将文件拷贝到容器内可以使用cp命令

docker cp 需要拷贝到的文件或目录 容器名称:容器目录
例如:docker cp anacods-ks.cfg mycentos2:/usr/local

拷贝一个文件到mycentos2的/usr/local/文件下面,拷贝完成之后,删除文件,然后在mycentos2拷贝过来

在~目录下面就有此文件
创建文件

[root@localhost ~]# touch anaconda-ks1.cfg

[root@CentOS02 ~]# docker cp anaconda-ks1.cfg mycentos7:/root/mytest

在这里插入图片描述

4. 目录挂载

我们可以创建容器的时候,将宿主机的目录与容器的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而影响容器。

创建容器 添加-v参数 后边为 宿主机目录:容器目录, 例如:

创建并启动容器 mycentos7,并挂载linux中/root/myDocker/ 目录到容器的/root/myDocker;
也就是在linux中的/root/myDocker/中操作相当于对容器相应目录操作

docker run -di --name=容器的名字 -v /root/myDocker:/root/myDocker centos:7

[root@CentOS02 ~]# docker run -id --name=mycentos7_3 -v /root/myDocker/:/root/myDocker centos:7

[root@localhost ~]# docker exec -it mycentos7_3 /bin/bash

[root@219d0ac1a7a1 /]# cd /root/
[root@219d0ac1a7a1 ~]# ll
total 4
-rw-------. 1 root root 3416 Nov 13  2020 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jun  3 11:14 myDocker

在这里插入图片描述
通过docker ps 查看正在运行的容器,在创建容器并且进行目录挂载,然后再通过docker ps查看刚刚创建的容器是否已经创建
[root@localhost ~]# cd /root/myDocker/
[root@localhost myDocker]# ll
总用量 0
在这里插入图片描述

进入到myDocker 目录,通过dir查看是否有文件,通过vim test,创建一个文件,进入test文件,随便输入一些数据
[root@CentOS02 ~]# cd /root/myDocker/
[root@CentOS02 myDocker]# vi test
hellolinux
在这里插入图片描述
进入目录随便输入一些数据,退出保存

登录容器,查看刚刚输入的内容

[root@CentOS02 ~]# docker exec -it mycentos7_3 /bin/bash

进入容器查看目录

[root@f26442fb12c0 /]# cd /root/
[root@f26442fb12c0 ~]# cd myDocker/
[root@f26442fb12c0 myDocker]# ll
total 4
-rw-r--r--. 1 root root 9 Jun 27 06:07 test
[root@f26442fb12c0 myDocker]# cat test 
dskjkkll

在这里插入图片描述

如果你共享的是多级目录,可能会出现权限不足提示。
这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true
来解决挂载的目录没有权限问题

5. 查看容器ip地址

我们可以通过以下命令查看容器运行的各种数据

docker inspect 容器名称 (容器ID)

[root@CentOS02 myDocker]# docker inspect mycentos7_3

在linux宿主机下查看mycentos7的ip
在这里插入图片描述
通过inspect可以查看的信息太多,如果想单纯有针对性的查看某个信息,也可以直接执行下面的命令直接输出IP地址

先执行命令再进行下面ifconfig

[root@f26442fb12c0 ~]# yum -y install net-tools


ifconfig

删除容器

1. 删除指定的容器

docker rm 容器名称(容器ID)
docker rm mycentos7

2、删除容器的时候,如果容器在运行,会报错,必须先停止容器

2. 查看正在运行的容器

docker ps
删除正在运行的容器
docker rm mycentos7
停止容器
docker stop mycentos7

3. 查看所有的容器

查看所有的容器,看看是否有mycentos7
docker ps -a
删除mycentos7容器
docker rm mycentos7
删除完之后,在查看mycentos7容器是否还存在
docker ps -a

也可以使用-f参数进行强制删除:docker rm -f 容器名称(容器ID)


在这里插入图片描述

结语

意气风发,漫卷疏狂
学习是成长的阶梯,每一次的积累都将成为未来的助力。我希望通过持续的学习,不断汲取新知识,来改变自己的命运,并将成长的过程记录在我的博客中
如果我的博客能给您带来启发,如果您喜欢我的博客内容,请不吝点赞、评论和收藏,也欢迎您关注我的博客。
您的支持是我前行的动力。听说点赞会增加自己的运气,希望您每一天都能充满活力!

愿您每一天都快乐,也欢迎您常来我的博客。我叫意疏,希望我们一起成长,共同进步。
logo 我是意疏 下次见!

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

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

相关文章

Android环境搭建

Android环境搭建 第一步:安装 Homebrew 执行以下命令来安装 Homebrew: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"检测是否安装成功: brew --version第二步:安装 No…

【调试工具】USB 转 UART 适配器(USB 转 TTL)

「USB 转 TTL 转换器」是错误的叫法&#xff0c;正确的叫法应该为 「USB 转 UART 适配器」。 Device connection 注意端口的交叉连接&#xff0c;Device1_TX<---->Device2_RX USB-to-UART adapter GND 记得接地。 使用&#xff1a; 当 TX,RX 需要电平为 0-3.3V 时&am…

Stable Diffusion核心网络结构——U-Net

本文详细详细介绍Stable Diffusion核心网络结构——U-Net&#xff0c;作用&#xff0c;架构&#xff0c;加噪去噪过程损失函数等。 目录 Stable Diffusion核心网络结构 SD模型整体架构初识 U-Net模型 【1】U-Net的核心作用 【2】U-Net模型的完整结构图 &#xff08;1&#xff0…

利用【AOP+自定义注解】实现项目中【日志记录】

利用AOP自定义注解实现日志记录 需求: 日志记录 操作日志记录,类似如下 思路:AOP自定义注解 AOP面向切面编程,利用 一种称为"横切"的技术&#xff0c;剖开封装的对象内部&#xff0c;并将那些影响了 多个类的公共行为抽取出封装到一个可重用模块&#xff0c;并将其…

JAVA-二叉树的概念和性质

目录 一.树形结构 1.1 概念 1.2 树的概念(重要)​编辑 补充&#xff1a;高度和深度的区别 1.3 树的应用 二. 二叉树&#xff08;重点&#xff09; 2.1 概念 2.2 两种特殊的二叉树 2.3 二叉树的性质 2.4 选择题 一.树形结构 1.1 概念 树是一种 非线性 的数据结构&…

SSM虾米音乐项目2--分页查询

1.分页查询的底层逻辑 首先根据用户输入的流派&#xff0c;进行模糊查询根据查询的数据进行分页需要前端用户提供pageNo(当前页数)和pageSize(每页的数据量)并且要从后端计算count(总数据量)和totalPage(总页数)&#xff0c;以及startNum(每页开始的记录)从而将对应的页面数据…

debian编译失败

A、缘由和分析 debian的代码在删除该路径下的2个包后&#xff0c; 重新全编&#xff0c;编译不过的问题。 至于我为什么删除这2个包&#xff0c;这是因为在sdk第一次编译时一些文件已经打包进去了&#xff0c;我现在的修改无法更新进img中&#xff0c;而现在我的项目中不需要…

Thonny IDE + MicroPython + ESP32 + A9G 发短信打电话

A9G模块的使用说明 详见该博客&#xff1a;a9gdfgdfhguyiuh-CSDN博客 接线 ESP32 DEVKIT_C A9G GND GND D23 RX A9G开发板用板载MiniUSB&#xff08;安卓口&#xff09;供电 代码 from machine import UART # 导入串口模块 # import timeUART0 UART1 UART2 TX …

在GITHUB上传本地文件指南(详细图文版)

这份笔记简述了如何在GITHUB上上传文件夹的详细策略。 既是对自己未来的一个参考&#xff0c;又希望能给各位读者带来帮助。 详细步骤 打开目标文件夹&#xff08;想要上传的文件夹&#xff09; 右击点击git bash打开 GitHub创立新的仓库后&#xff0c;点击右上方CODE绿色按…

沈阳工业大学《2024年827自动控制原理真题》 (完整版)

本文内容&#xff0c;全部选自自动化考研联盟的&#xff1a;《沈阳工业大学827自控考研资料》的真题篇。后续会持续更新更多学校&#xff0c;更多年份的真题&#xff0c;记得关注哦~ 目录 2024年真题 Part1&#xff1a;2024年完整版真题 2024年真题

初始化webpack应用示例

1、初始化npm mkdir webpack_test cd webpack_test npm init 2、安装webpack依赖 npm install webpack webpack-cli -D 3、添加文件夹&#xff0c;入口文件 mkdir src touch index.js touch add-content.js 文件夹结构 index.js import addContent from "./add-cont…

重邮+数字信号处理实验三:z变换及离散LTI系统的z域分析

实验目的&#xff1a; &#xff08; 1 &#xff09;学会运用 Matlab 求离散时间信号的有理函数 z 变换的部分分式展开&#xff1b; &#xff08; 2 &#xff09;学会运用 Matlab 分析离散时间系统的系统函数的零极点&#xff1b; &#xff08; 3 &#xff09;学会运用 …

前端开发底层逻辑全解析

前端开发就像是构建一座数字大厦的外表装饰与交互系统&#xff0c;而理解其底层逻辑则是打好坚实基础的关键。今天&#xff0c;我们就来深入剖析前端开发的底层逻辑。 一、浏览器的工作机制&#xff1a;幕后的魔法手 当我们在浏览器中打开一个网页时&#xff0c;一系列复杂的操…

MySQL -- CURD(下)

1. Update 修改 1.1 语法 对符合条件的结果进⾏列值更新 UPDATE [LOW_PRIORITY] [IGNORE] table_referenceSET assignment [, assignment] ...[WHERE where_condition][ORDER BY ...][LIMIT row_count]1.2 示例 将吕布的数学成绩改为99分 update exam set math 99 where …

【计算机网络】 —— 数据链路层(壹)

文章目录 前言 一、概述 1. 基本概念 2. 数据链路层的三个主要问题 二、封装成帧 1. 概念 2. 帧头、帧尾的作用 3. 透明传输 4. 提高效率 三、差错检测 1. 概念 2. 奇偶校验 3. 循环冗余校验CRC 1. 步骤 2. 生成多项式 3. 例题 4. 总结 四、可靠传输 1. 基本…

亚马逊 aws-waf-token 算法生成,协议逆向,通杀!!!

声明 本文章中所有内容仅供学习交流&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 难度不大&#xff0c;核…

SpringBoot 赋能家乡特色推荐系统:高效架构与前沿技术集成

1 绪 论 1.1课题背景与意义 在Internet高速发展的今天&#xff0c;计算机的应用几乎完全覆盖我们生活的各个领域&#xff0c;互联网在经济&#xff0c;生活等方面有着举足轻重的地位&#xff0c;成为人们资源共享&#xff0c;信息快速传递的重要渠道。在中国&#xff0c;网上管…

肥羊直播 1.0.2 |频道非常丰富的高清画质电视直播软件

肥羊直播App是一款专为电视用户设计的直播软件&#xff0c;提供丰富多彩的直播内容&#xff0c;包括央视、卫视、综合、地方、卡通动漫、娱乐、历史古装和电影等频道。该软件支持多种设备&#xff0c;如智能电视、高清机顶盒和安卓手机&#xff0c;为用户带来便捷且高清的观看体…

基础加/解密程序V2.0(Ascll码加减实现) txt保存密钥

Hello大家好&#xff0c;这次我对上篇博客&#xff08;基础加/解密程序&#xff08;Ascll码加减实现&#xff09;-CSDN博客&#xff09;中的代码略加修改&#xff0c;退出了2.0版本&#xff0c;这次我加入了txt输入/出流&#xff0c;使得可随时对密钥进行更改。不过在使用前&am…

代码随想录算法训练营day50|动态规划12

不同的子序列 给定一个字符串 s 和一个字符串 t &#xff0c;计算在 s 的子序列中 t 出现的个数。、 编辑距离中的删除元素&#xff0c;其实就是直接变数字&#xff0c;其只删除原来的较长的数组里的元素 递推模拟&#xff0c;使用s的最后一个元素匹配&#xff0c;或者删除…