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

文章目录

  • 【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-toolsifconfig

删除容器

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.rhkb.cn/news/477998.html

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

相关文章

Java---反射机制

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象, 都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 在编译后产生…

Mac配置maven环境及在IDEA中配置Maven

Mac配置maven环境及在IDEA中配置Maven 1. 介绍 Maven是一款广泛用于Java等JVM语言项目的工具,它以项目对象模型(POM)为基础进行项目管理,通过POM文件来定义项目信息和依赖关系。同时,它也是构建自动化工具&#xff0…

知乎日报——第二周

知乎日报——第二周 文章目录 知乎日报——第二周本周总结ModelViewController无限右滑预加载 总结 本周总结 本周主要完成了知乎日报的详情页面,实现了无限右滑和动态申请详情页的内容,实现了预先加载。以及通过位置获取相应的格外信息,使用…

非常简单实用的前后端分离项目-仓库管理系统(Springboot+Vue)part 2

七、创建前端项目 你下载了nodejs吗?从cn官网下载:http://nodejs.cn/download/,或者从一个国外org网站下载,选择自己想要的版本https://nodejs.org/download/release/,双击下载好的安装文件,选择安装路径安…

Windows 软件之 FFmpeg

文章目录 前言1 FFmpeg 视频处理1.1 编解码1.2 其它视频编辑命令1.3 视频抽帧 2 FFmpeg 音频处理3 FFmpeg 图片处理3.1 编解码3.2 拼接图片3.3 图片合成视频 附录1:mediainfo.ps1 前言 FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的…

Docker1:认识docker、在Linux中安装docker

欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…

MATLAB的addpath和rmpath函数增加或删除路径

在进行MBD建模开发时,模型生成代码时常需要加载一些其他的文件,例如代码生成模版文件cgt文件、模型所涉及的头文件,这个时候可以在模型的回调函数中使用addpath和rmpath函数加载和删除路径,例如设置模型的加载之前的回调函数在模型…

【FPGA开发】Vivado自定义封装IP核,绑定总线

支持单个文件的封装、整个工程的封装,这里用单个文件举例。 在文件工程目录下,自建一个文件夹,里面放上需要封装的verilog文件。 选择第三个,指定路径封装,找到文件所在目录 取个名,选择封装IP的路径 会…

前端速通(CSS)

1.CSS介绍 1.什么是CSS? CSS(Cascading Style Sheets,层叠样式表)是一种用于控制网页的外观和布局的样式表语言。它与HTML(超文本标记语言)紧密配合,负责页面元素的样式定义,如字体、颜色、尺…

Android 13 编译Android Studio版本的Launcher3

Android 13 Aosp源码 源码版本 Android Studio版本 Launcher3QuickStepLib (主要代码) Launcher3ResLib(主要资源) Launcher3IconLoaderLib(图片加载,冲突资源单独新建) 需要值得注意的是: SystemUISharedLib.jar 有kotlin和java下的,在 Lau…

idea添加版权信息

1、添加Copyright Profiles 打开Settings -> Editor -> Copyright -> Copyright Profiles -> 新增 Copyright (c) 【你的版权信息】 【开始年份】-${today.year}. All rights reserved.如: Copyright (c) by cwp 2024-${today.year}. All rights rese…

【计算机网络】多路转接之poll

poll也是一种linux中的多路转接方案(poll也是只负责IO过程中的"等") 解决:1.select的fd有上限的问题;2.每次调用都要重新设置关心的fd 一、poll的使用 int poll(struct pollfd *fds, nfds_t nfds, int timeout); ① struct pollfd *fds&…

【C语言】深入剖析 C 语言中数组与指针的紧密联系及高效应用

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C语言 文章目录 💯前言💯例一:指针偏移遍历数组1.1 代码回顾1.2 代码分析1.3 理论扩展:数组与指针的关系1.4 数组与指针的应用场景 💯例二:自定义…

基于SpringBoot的数据结构系统设计与实现(源码+定制+开发)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

算法训练-双指针

双指针 leetcode392. 判断子序列 法一:动态规划 法二:双指针 leetcode876. 链表的中间结点 法一:链表数组 法二:快慢指针 leetcode160. 相交链表 法一:双指针 leetcode167. 两数之和 II - 输入有序数组 法一&…

零基础学指针(上)

系列文章目录 🎈 🎈 我的CSDN主页:OTWOL的主页,欢迎!!!👋🏼👋🏼 🎉🎉我的C语言初阶合集:C语言初阶合集,希望能…

shell编程之sed

sed 是一种流编辑器,它是文本处理中非常有用的工具,能够完美的配合正则表达式使用,处理时,把当前处理的行存储在临时缓冲区中,称为模式空间,接着用sed 命令处理缓冲区中的内容,处理完成 后&…

一文学习开源框架OkHttp

OkHttp 是一个开源项目。它由 Square 开发并维护,是一个现代化、功能强大的网络请求库,主要用于与 RESTful API 交互或执行网络通信操作。它是 Android 和 Java 开发中非常流行的 HTTP 客户端,具有高效、可靠、可扩展的特点。 核心特点 高效…

多目标优化算法:多目标极光优化算法(MOPLO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6,提供完整MATLAB代码

一、极光优化算法 极光优化算法(Polar Lights Optimization, PLO)是2024年提出的一种新型的元启发式优化算法,它从极光这一自然现象中汲取灵感。极光是由太阳风中的带电粒子在地球磁场的作用下,与地球大气层中的气体分子碰撞而产…

【贪心算法第二弹——2208.将数组和减半的最小操作数】

1.题目解析 题目来源 2208.将数组和减半的最小操作数——力扣 测试用例 2.算法原理(贪心策略) 3.实战代码 class Solution { public:int halveArray(vector<int>& nums) {priority_queue<double> hash;double sum 0.0;for(auto e : nums){hash.push(e);sum …