Linux & Docker常用命令

2023-10-31

目录

一、Docker服务相关命令

二、镜像相关命令

-查看镜像:查看本地所有的镜像

-搜索镜像:从网络中查找需要的镜像

-拉取镜像

-删除镜像

三、容器相关命令

-查看容器

-创建容器

-进入容器

-启动容器

-停止容器

-重启应用

-删除容器

-查看容器信息

四、docker 容器的数据卷

数据卷作用

配置数据卷

数据卷容器

数据卷小结

五、docker应用部署

1、mysql部署

补充:

一、docker宿主主机与容器互相传输文件方式

二、本地与远程的文件互相传输

三、linux下文件查找

四、查看进程和端口


一、Docker服务相关命令

-启动docker 服务

systemctl start docker

-停止docker服务

systemctl stop docker

-重启docker服务

systemctl restart docker

-查看docker服务状态

systemctl status docker

二、镜像相关命令

-查看镜像:查看本地所有的镜像

docker images  #查看本地所有的镜像

docker images -q  #查看所有镜像的id

-搜索镜像:从网络中查找需要的镜像

docker search 镜像名称

eg:docker search redis

-拉取镜像

从docker仓库下载镜像到本地,镜像名称格式为【名称:版本号】,如果版本号不指定则是最新的版本,如果不指定镜像版本,可以去docker hub搜索。

docker pull 镜像名称[:版本号]

-删除镜像

删除本地镜像

docker rmi 镜像id   #删除指定本地镜像

docker rmi `docker images -q`  #删除本地所有镜像

三、容器相关命令

-查看容器

docker ps     #查看正在运行的容器

docker ps -a   #查看所有的容器

-创建容器

docker run 参数

eg:  docker run -it --name=r1 redis:6.2

  1. -i:保持容器运行。通常与-t同时使用,加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。
  2. -t:为容器重新分配一个伪输入终端,通常与-i同时使用。
  3. -d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec进入容器,退出后,容器不会关闭。
  4. -it创建的容器一般称为交互式容器,-id创建的容器一般称为守护式容器。
  5. --name:为创建的容器命名。

-进入容器

  1. docker exec -it 容器id /bin/bash
  2. docker exec -it 容器id /bin/sh

-启动容器

docker start 容器id

-停止容器

docker stop 容器id

-重启应用

docker-compose down && docker-compose up -d

-删除容器

docker rm 容器id   :删除已经停止的容器

docker rm -f 容器id  :强行删除容器

-查看容器信息

分别执行 hostname、ip addr、env 这三个命令可以获取相关信息

  1. 进入容器内部获取信息
    (2)执行docker exec命令
    (3)执行docker inspect命令(推荐)

第1种:进入容器内部获取信息

docker exec -it 容器id  /bin/bash

第2种:执行docker exec命令

docker exec 容器id  hostname

docker exec 容器id  ip addr

docker exec 容器id  env

第3种:使用docker inspect命令(推荐)

docker  inspect 容器名

四、docker 容器的数据卷

思考:

  1. Docker容器删除后,在容器中产生的数据还存在吗?
  2. Docker容器和外部机器可以直接交换文件吗?-不可以
  3. 容器之间想要进行数据交互?

数据卷******

  1. 数据卷是宿主机中的一个目录或文件
  2. 当容器目录和数据卷目录绑定后,对方的修改会立即同步
  3. 一个数据卷可以被多个容器同时挂载
  4. 一个容器也可以挂载多个数据卷

数据卷作用

  1. 容器数据持久化
  2. 外部机器和容器间接通信
  3. 容器之间数据交换

配置数据卷

创建启动容器时,使用-v参数设置数据卷

docker run ... -v 宿主机目录(文件): 容器内目录(文件)

eg:  docker run -it --name=mysql -v /root/data/jcx:/root/container 96d0eae5ed60 /bin/bash

示例:多个容器挂载同一个数据卷,实现不同容器之间的数据交换

容器1: docker run -it --name=A -v /root/jcx:/root/container/data1 mysql /bin/bash

容器2: docker run -it --name=B -v /root/jcx:/root/container/data2 mysql /bin/bash

说明:将容器A和容器B都挂载到数据卷/root/jcx下,实现A、B数据之间同步。

数据卷容器

多容器进行数据交换

  1. 多个容器挂载同一个数据卷
  2. 数据卷容器 (上图中的container c3)

数据卷小结

五、docker应用部署

1、mysql部署

目标:在docker容器中部署mysql,并通过外部mysql客户端操作mysql server.

实现步骤

  1. 搜索mysql镜像
  2. 拉取mysql镜像
  3. 创建容器
  4. 操作容器中的mysql

操作步骤:

在/root 目录下创建mysql目录用于存储mysql数据信息

mkdir /root/mysql

cd  /root/mysql

docker run -id \

-p 3307:3306 \

--name=c_mysql \

-v $PWD/conf:/etc/mysql/conf.d \

-v $PWD/logs:/logs \

-v $PWD/data:/var/lib/mysql \

-e MYSQL_ROOT_PASSWORD=123456 \

mysql

  1. 进入mysql容器

docker exec -it c_mysql /bin/bash

  1. 登陆mysql

mysql -uroot -p123456

Windows上用navicat连接docker上部署的mysql 服务

用宿主机的ip  + 宿主机上数据卷的端口

eg: 192.168.10.7:3307  用户名密码:root/123456

补充:

一、docker宿主主机与容器互相传输文件方式

1、从宿主机器copy文件到容器里

docker cp 要拷贝的文件路径 容器名:容器里的路径

docker cp /jcx/arthas-boot.jar 容器id:/jcx/

2、从容器copy文件到宿主机

docker cp 容器id:/容器里文件路径 宿主机路径

docker cp 容器id:/jcx/a.txt  /jcx/

说明:不管容器有没有启动,拷贝命令都会生效。

二、本地与远程的文件互相传输

scp命令:scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的

1、从本地复制到远程

在本地服务器上将/root/lk目录下所有的文件传输到服务器43.224.34.73的/home/lk/cpfile目录下,命令为:

scp -r /root/lk root@43.224.34.73:/home/lk/cpfile

2、从远程复制到本地

在本地服务器上操作,将服务器43.224.34.73上/home/lk/目录下所有的文件全部复制到本地的/root目录下,命令为:

scp -r root@43.224.34.73:/home/lk /root

三、linux下文件查找

1、find  ***********

在指定目录下查找(常用)

【语法】find path -name filename

find / -name redis

find / -name redis* #模糊匹配

find / -mmin -20 #最近20分钟内修改的文件

find / -mtime -1 #最近一天内修改的文件

2、which

which 从环境变量文件(/etc/profile)中的path目录中查找,且witch找的都是可执行文件

which redis

3、locate

linux系统每天至少自动扫描一次文件,将结果保存到数据库,locate查的是数据库记录。locate查询比find要快,但最新文件如果在数据库中没有记录,是需要手动更新(updatedb)

locate redis

4、whereis

与which类似查询【可执行文件】,whereis查询更多,会查找出相关的man文件

whereis redis

四、查看进程和端口

1、linux查询端口

netstat -anp  #显示所有已开放端口

netstat -anp | grep 80  #查询指定端口通过grep过滤

netstat -tnlp  #显示tcp的端口和进程等相关情况

说明:

2、杀掉占用端口的进程

kill -9  pid

3、Linux查看某个服务是否启动

ps -ef | grep redis

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux & Docker常用命令 的相关文章

  • Docker 教程入门第 4 部分连接被拒绝

    我不明白我错过了什么 docker compose yml version 3 services web replace username repo tag with your name and image details image sv
  • Linux 内核标识符中前导和尾随下划线的含义是什么?

    我不断遇到一些小约定 比如 KERNEL Are the 在这种情况下 是内核开发人员使用的命名约定 还是以这种方式命名宏的语法特定原因 整个代码中有很多这样的例子 例如 某些函数和变量以 甚至 这有什么具体原因吗 它似乎被广泛使用 我只需
  • CentOS:无法安装 Chromium 浏览器

    我正在尝试在 centOS 6 i 中安装 chromium 以 root 用户身份运行以下命令 cd etc yum repos d wget http repos fedorapeople org repos spot chromium
  • os.Mkdir 和 os.MkdirAll 权限

    我正在尝试在程序开始时创建一个日志文件 我需要检查是否 log如果不创建目录 则目录存在 然后继续创建日志文件 好吧 我尝试使用os Mkdir 也os MkdirAll 但无论我在第二个参数中输入什么值 我都会得到一个没有权限的锁定文件夹
  • Linux:如何从特定端口发送TCP数据包?

    如何打开原始套接字以从特定 TCP 端口发送 我希望所有连接始终来自临时端口以下的一系列端口 如果您正在使用raw套接字 然后只需在数据包标头中填写正确的 TCP 源端口即可 相反 如果您使用 TCP 套接字接口 socket connec
  • 有谁知道在哪里定义硬件、版本和序列号。 /proc/cpuinfo 的字段?

    我想确保我的 proc cpuinfo 是准确的 目前它输出 Hardware am335xevm Revision 0000 Serial 0000000000000000 我可以在代码中的哪里更改它以给出实际值 这取决于 Linux 的
  • Linux 中什么处理 ping?

    我想覆盖 更改 linux 处理 ping icmp echo 请求数据包的方式 这意味着我想运行自己的服务器来回复传入的 icmp 回显请求或其他 数据包 但为了使其正常工作 我想我需要禁用 Linux 的默认 ping icmp 数据包
  • 多处理:仅使用物理核心?

    我有一个函数foo它消耗大量内存 我想并行运行多个实例 假设我有一个有 4 个物理核心的 CPU 每个核心有两个逻辑核心 我的系统有足够的内存来容纳 4 个实例foo并行但不是 8 个 此外 由于这 8 个核心中的 4 个是逻辑核心 我也不
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • 如何在运行 .net Core 模板的 Windows docker 容器和 Windows 主机中安装开发证书?

    我已使用 Visual Studio 模板添加 Docker 支持 并且用户机密具有证书的密码 并且用户机密和证书作为卷安装在docker compose override yml volumes APPDATA ASP NET Https
  • 查找哪个程序运行另一个程序

    我有一个 NAS 运行在 Redhat Linux 的有限版本上 我按照指示破解了它 这样我就可以访问 shell 这很有帮助 我还做了一些修改 其他人也做过修改 除了一个问题之外 它们似乎都工作得很好 不知何故 每隔 22 天 系统就会关
  • 如何更改 Apache 服务器的根目录? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何更改 Apache 服务器的文档根目录 我基本上想要localhost从 来 users spencer projects目录而不是
  • Docker Flask ModuleNotFoundError:没有名为“flask”的模块

    我在执行时遇到以下错误 docker compose up build web 1 Traceback most recent call last web 1 File glm plotter py line 4 in
  • 是否可以创建一个脚本来保存和恢复权限?

    我正在使用 Linux 系统 需要对一组嵌套文件和目录进行一些权限实验 我想知道是否没有某种方法可以保存文件和目录的权限 而不保存文件本身 换句话说 我想保存权限 编辑一些文件 调整一些权限 然后将权限恢复到目录结构中 将更改的文件保留在适
  • 删除 Git 存储库,但保留所有文件

    在我使用 Linux 的过程中的某个时刻 我决定将我的主目录中的所有内容都放入源代码管理中是个好主意 我不是在问这是否是一个好主意 我是在问如何撤销它 删除存储库的原因是我最近安装了 Oh My Zsh 而且我非常喜欢它 问题是我的主目录有
  • 当 grep "\\" XXFile 我得到“尾随反斜杠”

    现在我想查找是否有包含 字符的行 我试过grep XXFile但它暗示 尾随反斜杠 但当我尝试时grep XXFile没关系 谁能解释一下为什么第一个案例无法运行 谢谢 区别在于 shell 处理反斜杠的方式 当你写的时候 在双引号中 sh
  • MySQL 中的创建/写入权限

    我的设备遇到一些权限问题SELECT INTO OUTFILE陈述 当我登录数据库并执行简单的导出命令时 例如 mysql gt select from XYZ into outfile home mropa Photos Desktop
  • Linux - 从第二个选项卡获取文本

    假设我们有这样的文件 一些文本11 一些文本12 一些文本13 一些文本21 一些文本22 一些文本23 文本由制表符分隔 我们知道第 1 列中的一些文本 但希望从第 2 列中获取文本 我知道我可以通过以下方式获取线路 grep somet
  • Linux:如何设置进程的时区?

    我需要设置在 Linux 机器上启动的各个进程的时区 我尝试设置TZ变量 在本地上下文中 但它不起作用 有没有一种方法可以使用与系统日期不同的系统日期从命令行运行应用程序 这可能听起来很愚蠢 但我需要一种sandbox系统日期将被更改的地方
  • 子目录中的头文件(例如 gtk/gtk.h 与 gtk-2.0/gtk/gtk.h)

    我正在尝试使用 GTK 构建一个 hello world 其中包括以下行 include

随机推荐

  • 华为OD机试 - 数字反转打印(Java)

    题目描述 小华是个对数字很敏感的小朋友 他觉得数字的不同排列方式有特殊美感 某天 小华突发奇想 如果数字多行排列 第一行1个数 第二行2个 第三行3个 即第n行有n个数字 并且奇数行正序排列 偶数行逆序排列 数字依次累加 这样排列的数字一定
  • AD9361配置采用纯PL方式,QT编写的小软件可以快速实现

    采用ADI官方的API函数 虽然能够快速的实现AD9361配置 让我们不必关注9361的内部寄存器的配置过程 但是在实际的项目开发过程中 也在一定程度上限制了AD9361与PL之间数据交互的灵活性 今天给大家推荐采用AD9361官方提供的配
  • Android开发之逐帧动画优化

    Android上如果使用逐帧动画的话 可以很方便地使用AnimationDrawable 无论是先声明xml还是直接代码里设置 都是几分钟的事 但使用AnimationDrawable有一个致命的弱点 那就是需要一次性加载所有图片到内存 万
  • go语言基础-----17-----channel创建、读写、安全关闭、多路复用select

    1 通道channel介绍 1 channel 可译为通道 是go语言协程goroutine之间的通信方式 2 channel通信可以想象成从管道的一头塞进数据 从另一头读取数据 通道作为容器是有限定大小的 满了就写不进去 空了就读不出来
  • 高防CDN对于网站、平台有着至关重要作用?

    1 减轻服务器的占用率和网站服务器的带宽资源 通过使用CDN服务 用户可以在CDN节点上分发对主要频道 包括页面和图片 的访问 这样可以减少源设备上的负载压力和带宽资源 并将资源保存到相同的带宽消耗服务中 如邮件 论坛和服务器资源 以保证网
  • 热区的使用方法

    1 如图所示 热区的位置是在元件库中 这样的一个标识 2 热区的使用经常会搭配一些比较小的文字或者图片等区域 只要是在热区中 随便点击哪一个地方都是属于这个区域 3 我们做了几个页面 样式不同 4 如图 我们创建一个热区在02的选区中 5
  • python + selenium实现巨潮资讯网指定范围年报下载

    大家好 第一次写文章 紧张滴捏 这段时间在做课设 课设里需要下载沪市600000到601000号的年报原文做数字化关键词的词频分析 想着用程序帮我批量下载一下 但是找了一下貌似没有类似的代码 就写了一个应用selenium库来做模拟下载的p
  • 各类打印机驱动官网下载安装

    前言概述 找驱动很简单 但是网上有时候找起来有点费劲呢 不安全 目前市面上打印机驱动搜索软件好用的基本都要付费 或者不全 比如下图这个就是付费的 常用的打印机品牌 惠普 HP 佳能 Canon 爱普生 Epson 京瓷 Kyocera 三星
  • 二流计算机学校,学校可以是二流的,但你不是

    我每天都会看大家在微博里给我的留言 时常看到深夜 私信的 每一条都看 问的最多的一种问题 是这么开头的 我的学校不好 或者 我是一个来自二 三 本学校的学生 我该怎么办 我不知道怎么回答 因为我不觉得来自一个二流的学校就应该过着二流的生活
  • C语言实现队列(链表实现)

    队列 Queue 也是运算受限的线性表 是一种先进先出 First In First Out 简称 FIFO 的线性表 只允许在表的一端进行插入 而在另一端进行删除 队首 front 允许进行删除的一端称为队首 队尾 rear 允许进行插入
  • 浅析Linux内核中的链表

    1 内核中的链表 linux内核链表与众不同 他不是把将数据结构塞入链表 而是将链表节点塞入数据 在2 1内核中引入了官方链表 从此内核中所有的链表使用都采用此链表 千万不要在重复造车轮子了 链表实现定义在
  • 第五届蓝桥杯Java A组决赛试题

    1 标题 海盗分金币 有5个海盗 相约进行一次帆船比赛 比赛中天气发生突变 他们被冲散了 恰巧 他们都先后经过途中的一个无名的荒岛 并且每个人都信心满满 觉得自己是第一个经过该岛的人 第一个人在沙滩上发现了一堆金币 他把金币分成5等份 发现
  • STM32CubeMX驱动MPU6050模块

    文章目录 1 MPU6050模块简介 2 MPU6050重要寄存器介绍 2 1 数字低通滤波器配置寄存器CONFIG 2 2 采样率分频寄存器SMPRT DIV 2 3 加速度计配置寄存器ACCEL CONFIG 2 4 角速度计配置寄存器
  • 区别:OrderedDict vs dict

    OrderedDict 和 dict 是两种字典类型 都用于存储键值对 key value pairs dict 是Python的内置字典类型 它是无序的 即它不会按照元素插入的顺序来保存键值对 当你通过键来访问 dict 中的值时 Pyt
  • sqoop query时单双引号选用以及$CONDITION使用的探究

    这段时间碰见了一个奇怪的sqoop导入问题 我的业务目标是想将postgresql库里的某张表内的数据导入到hive里 而且在导入的时候需要做一步查询 但在导入的时候 围绕着 CONDITION 这个参数 会有不同的运行结果 有的报错 有的
  • MySQL基础架构与日志详解

    一 MySQL基础架构 MySQL可以分为Server层和存储引擎层两部分 Server层包括连接器 查询缓存 分析器 优化器 执行器等 涵盖MySQL的大多数核心服务功能 以及所有的内置函数 如日期 时间 数学和加密函数等 所有跨存储引擎
  • 软件需求之DFD图

    DFD图是一种以数据和数据的封闭性为基础 从问题空间到某种表示的映射方法 是一种结构化分析方法 DFD图在软件的需求分析中发挥着不可替代的作用 DFD图在软考中是必考的内容 在软件工程中也是一个非常中要的图 下面是我结合网上的资料和自己的所
  • Linux系统里压缩PDF文件大小

    sudo apt get install ghostscript gs sDEVICE pdfwrite dCompatibilityLevel 1 4 dPDFSETTINGS screen dNOPAUSE dQUIET dBATCH
  • JavaFX 控件 ImageView

    ImageView 支持格式 BMP GIF JPEG PNG 加载图片 如果设置了 requestedXXX 尺寸 ImageView中 设置 FitXXX 尺寸是基于requestedXXX 尺寸缩放 Image image new I
  • Linux & Docker常用命令

    目录 一 Docker服务相关命令 二 镜像相关命令 查看镜像 查看本地所有的镜像 搜索镜像 从网络中查找需要的镜像 拉取镜像 删除镜像 三 容器相关命令 查看容器 创建容器 进入容器 启动容器 停止容器 重启应用 删除容器 查看容器信息