Docker容器

Docker容器

  • 容器相关概念
    • 容器的状态转换
  • 容器命令
    • docker create
    • docker run
    • docker ps
    • docker logs
    • docker attach
    • docker exec
    • docker start
    • docker stop
    • docker restart
    • docker kill
    • docker top
    • docker stats
    • docker container inspect
    • docker port
    • docker cp
    • docker diff
    • docker commit
    • docker pause
    • docker unpause
    • docker rm
    • docker export
    • docker import
    • docker rename
    • docker container prune
    • docker update
  • 容器基本操作
    • 批量操作容器
    • 容器自动重启
    • 容器环境变量设置
    • 容器日志查看
  • 实战操作
    • 安装MySQL
    • 安装Redis

容器相关概念

🚀之前分享过docker镜像,本质就是一个联合文件系统,它与docker容器之间的关系就如类和实例之间的关系一样,docker镜像是静态的,一旦运行起来就会成为一个docker容器。并且docker镜像这个多层次的联合文件系统是只读的,启动一个容器后会在这个文件系统的最上层创建一个容器层,可供容器修改的文件层。

容器的状态转换

在这里插入图片描述

  • created状态:
    通过docker create指令创建一个容器,但是不启动,此时就处于created状态
    在这里插入图片描述
  • Running状态
    通过docker start将停止或者created状态的容器启动起来,或者直接docker run一个镜像得到的容器都是running状态
    在这里插入图片描述
  • stopped状态
    由running状态变成stopped状态的途径有三种:1.docker kill 或者 docker stop 2.使容器内的进程退出3.容器由于内存占用过多被kill且没有设置restart属性
    在这里插入图片描述
  • paused状态
    对运行的容器使用docker pause指令使得容器暂停
    在这里插入图片描述
    使用docker unpause将暂停的容器继续运行
    在这里插入图片描述
  • deleted状态
    对stopped状态的容器使用docker rm 或者docker container prune删除=>deleted状态

容器命令

docker create

🚀创建一个容器但是不启动。

docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
#常用参数
-i : 以交互模式运行容器,通常与 -t 同时使用
-t : 为容器重新分配一个伪输入终端,通常与 -i 同时使用
-P : 指定端口映射,格式为:主机(宿主)端口:容器端口 
-p : 随机端口映射
--name : 给容器起名字
-h : 指定容器的hostname
-e : 设置容器的环境变量
--cpuset-cpus : 绑定容器到指定的cpu运行
-m : 设置容器最大使用内存
--link : 添加链接到另一个容器
--rm : 容器退出后自动删除容器
--restart : 自动重启
--network : 指定容器的网络连接类型
-v :  绑定一个存储卷

docker run

🚀创建一个容器并执行一个命令。

docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
#常用参数
-d : 后台运行容器
-i : 以交互模式运行容器,通常与 -t 同时使用
-t : 为容器重新分配一个伪输入终端,通常与 -i 同时使用
-P : 指定端口映射,格式为:主机(宿主)端口:容器端口 
-p : 随机端口映射
--name : 给容器起名字
-h : 指定容器的hostname
-e : 设置容器的环境变量
--cpuset-cpus : 绑定容器到指定的cpu运行
-m : 设置容器最大使用内存
--link : 添加链接到另一个容器
--rm : 容器退出后自动删除容器
--restart : 自动重启
--network : 指定容器的网络连接类型
-v :  绑定一个存储卷

docker ps

🚀查看容器信息。

docker ps [OPTIONS]
# 常用选项
-a : 显示所有容器,包括未运行的容器
-f : 过滤条件
--format : 指定返回值的模板文件。(默认是table)/json
-l : 显示最新创建的容器
-n : 显示最新创建的n个容器
--no-trunc : 不截断的输出信息
-q : 静默模式,只显示容器id
-s : 显示容器文件大小,包括镜像文件(只读)和容器文件(可读写)

在这里插入图片描述

docker logs

🚀查看容器的日志信息。

docker logs [OPTIONS] CONTAINER 
# 常用参数
-f : 跟踪日志输出
-n : 显示最新的n条日志
-t : 显示时间戳
--since : 显示某个开始时间的所有日志

启动一个nginx容器观察其日志消息

  • docker logs
    在这里插入图片描述

  • docker logs -f
    在这里插入图片描述
    不加 -f 选项就是输出容器的日志然后退出,而-f选项是追踪容器日志输出如果没有产生日志就阻塞等待。

  • docker logs --since
    在这里插入图片描述

  • docker logs -n
    在这里插入图片描述

  • docker logs -t
    在这里插入图片描述

docker attach

🚀连接到正在运行的容器,将本地的标准输入,标准输出,标准错误流附加到运行的容器上。

docker attach [OPTIONS] CONTAINER 
# 常用选项
--sig-proxy : 是否将所有的信号代理,默认是true,设置为false后退出并不会影响到容器。
  • docker attach
    在这里插入图片描述
    使用Ctl + C退出,会导致容器也跟着退出
    在这里插入图片描述

  • docker attach --sig-proxy=false
    在这里插入图片描述

docker exec

🚀在容器中执行命令。

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
#常用选项
-d : 后台运行
-i : 以交互式运行
-t : 返回一个伪终端
-e : 设置环境变量
-u : 以某个用户去运行
-w : 设置工作目录
  • docker exec
    在这里插入图片描述
  • docker exec -d
    在这里插入图片描述
  • docker exec -it
    在这里插入图片描述
  • docker exec -e
    在这里插入图片描述
  • docker exec -u
    在这里插入图片描述
  • docker exec -w
    在这里插入图片描述

docker start

🚀启动一个容器或者多个容器。

docker start [OPTIONS] CONTAINER [CONTAINER...]
  • 启动一个创建好的容器
    在这里插入图片描述

  • 启动一个停止状态的容器
    在这里插入图片描述

docker stop

🚀停止掉一个或者多个容器。

docker stop [OPTIONS] CONTAINER [CONTAINER...]
#常用选项
-s : 指定一个信号发送给容器

docker stop停止一个容器,容器内的主进程会收到终止信号,可以对此信号做捕捉,收到此信号后清理自己的资源然后退出。

  • docker stop
    在这里插入图片描述
    gracefully shutting down,清理完资源后退出

  • docker stop -s
    在这里插入图片描述
    在这里插入图片描述

docker restart

🚀重启一个或多个容器。

docker restart [OPTIONS] CONTAINER [CONTAINER...]
# 常用选项
-s : 发送一个指定信号给容器
  • docker restart
    在这里插入图片描述
    在这里插入图片描述

docker kill

🚀杀死一个或者多个容器。

docker kill [OPTIONS] CONTAINER [CONTAINER...]
# 常用选项
-s : 指定一个信号发给容器(默认是SIGKILL)
  • docker kill
    在这里插入图片描述
    在这里插入图片描述
    可以看到也可以使用docker kill 指定3号信号发给容器,相当于docker stop,容器会清理完资源后退出。如果是默认的SIGKILL信号容器会直接退出。

docker top

🚀查看容器内所有的进程信息。

docker top CONTAINER [ps OPTIONS]
  • docker top
    在这里插入图片描述

docker stats

🚀查看容器使用资源的信息。

docker stats [OPTIONS] [CONTAINER...]
# 常用参数
-a : 显示所有容器,包括未运行的
--format : 返回指定的格式
--no-stream : 展示完当前状态直接退出,不再实时更新
--no-trunc : 不截断的输出
  • docker stats
    在这里插入图片描述
    默认是实时更新的,使用--no-stream可以关闭实时更新,只展示一次

  • docker stats --format --no-stream
    在这里插入图片描述

docker container inspect

🚀查看一个或者多个容器的详细信息。

docker container inspect [OPTIONS] CONTAINER [CONTAINER...]
# 常用选项
-s : 显示总体文件大小(镜像文件/容器文件)
--format : 返回指定格式的结果(默认使用json格式)

docker port

🚀查看容器的端口映射关系。

docker port CONTAINER [PRIVATE_PORT[/PROTO]]
  • docker port
    在这里插入图片描述
  • docker port tcp/udp
    在这里插入图片描述

docker cp

🚀完成容器与宿主机之间的文件的拷贝。

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
  • 将容器的文件拷贝到宿主机的指定目录下
    在这里插入图片描述
    在这里插入图片描述

  • 将宿主机的文件拷贝到容器的指定目录下
    在这里插入图片描述
    在这里插入图片描述

docker diff

🚀查看容器文件系统上文件或者目录的更改。

docker diff CONTAINER
# A -- add
# D -- delete
# C -- change
  • docker diff
    在这里插入图片描述

docker commit

🚀根据当前运行的镜像对镜像文件的修改去创建一个新的镜像。

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
# 常用选项
--author : 指明指定容器的作者
-c : 使用dockerfile去构建镜像
-m : commit时的说明文字
-p : 提交时暂停容器
  • docker commit --author -m -p
    在这里插入图片描述
    在这里插入图片描述

docker pause

🚀暂停容器内所有的进程。

docker pause CONTAINER [CONTAINER...]
  • docker pause
    在这里插入图片描述

docker unpause

🚀取消停止容器中的所有进程。

docker unpause CONTAINER [CONTAINER...]
  • docker unpause
    在这里插入图片描述

docker rm

🚀删除容器。

docker rm [OPTIONS] CONTAINER [CONTAINER...]
# 常用选项
-f : 强制删除(如果容器正在运行将会给其发送SIGKILL信号)
-l : 删除指定链接 
-v : 删除与容器相关联的存储卷

docker export

🚀导出容器内容为tar文件。

docker export [OPTIONS] CONTAINER
# 常用选项
-o : 指定输出文件
  • docker export -o
    在这里插入图片描述

docker import

🚀将tar文件导出为一个镜像。

docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
#常用选项
-c : 将dockerfile指令应用到创建的镜像
-m : 提交时的说明文字
  • docker import
    在这里插入图片描述
    由容器export导出的tar文件,会导致镜像的一些数据丢失
    在这里插入图片描述

docker rename

🚀给容器重命名。

docker rename CONTAINER NEW_NAME

docker container prune

🚀删除所有已经停止的容器。

docker container prune [OPTIONS]
# 常用选项
--filter : 筛选条件
-f : 强制删除
  • docker container prune
    在这里插入图片描述

docker update

🚀修改容器的配置信息。

docker update [OPTIONS] CONTAINER [CONTAINER...]

在这里插入图片描述

容器基本操作

批量操作容器

批量删除已经退出的容器
在这里插入图片描述
1.使用docker rm 逐个添加容器名称
2.使用docker rm 批量删除
在这里插入图片描述

容器自动重启

🚀重启策略一般都是用于生产环境,当发生意外情况如断电,断网时需要容器快速重启的情境下,正常的开发和测试环境通常不需要设置重启选项。默认的重启选项是关闭的。

  • docker --restart=on-failure
    当docker 容器退出码非0时就会重启容器,也可以设置重启次数 docker --restart=on-failure:n(重启n次)
  • docker --restart=always
    容器退出时总是重启
  • docker --restart=unless-stopped
    容器退出时,总是重启,但是不考虑docker守护进程启动时就已经停止的容器

使用docker stop 或者 docker kill停止的容器不会重新启动
容器收到某个信号退出时,会重启
在这里插入图片描述

容器环境变量设置

🚀在启动一个容器时,可以通过-e选项设置设置容器的环境变量,但是当需要设置很多环境变量时,这样显然是比较麻烦的,可以直接导入一个环境变量文件来完成。

--env-file=filepath
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

容器日志查看

🚀当使用docker logs查看容器的日志消息时,为了方便以后使用日志进行问题的追溯,可以将容器日志信息重定向到文件中。

在这里插入图片描述

实战操作

安装MySQL

🚀首先拉取MySQL的容器镜像
在这里插入图片描述
在这里插入图片描述

🚀启动MySQL容器
启动mysql服务器的时候通过设置MYSQL_ROOT_PASSWORD= 环境变量来设置登录mysql的密码
在这里插入图片描述
🚀登录MySQL

在这里插入图片描述

安装Redis

🚀拉取redis镜像
在这里插入图片描述
在这里插入图片描述

🚀启动redis容器
在这里插入图片描述在这里插入图片描述

🚀登录redis

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在 vue3 中使用 Recorder 实现录音并上传(mp3、wav)兼容 PC 和移动端

一、Recorder 介绍 使用 Recorder插件可以在网页中进行录音。生成 blob 文件并可以自定义上传,同时,录音过程中会显示可视化波形,同时能够做到兼容PC端、Android、和iOS,十分好用! Recorder github 首页 插件效果展…

PIL.UnidentifiedImageError: cannot identify image file ...

按照网上搜的重新安装pillow库,对我这个不适用。我的解决方法是把有问题的图片删掉。

[Docker]十一.Docker Swarm集群raft算法,Docker Swarm Web管理工具

一.Docker Swarm集群raft算法讲解 Raft :一致性算法,在保证大多数管理节点存活的情况下,集群才能使用, 所以就要求如果集群的话, manager 节点必须 >3 台 ,如果是两个台,其中一台宕机&#…

运动蓝牙耳机什么牌子好?百元蓝牙运动耳机排行榜

​跑步、骑车、健身等运动时,大家都需要一款专业的运动耳机来陪伴,它不仅可以提供高品质的音乐和佩戴舒适度,还可以帮助你掌握运动状态,让你更加专注和投入。今天我为大家推荐几款备受好评的运动耳机,它们都拥有不错的…

Vatee万腾的科技冒险:Vatee独特探索力量的数字化征程

在数字化时代的激流中,Vatee万腾以其独特的科技冒险精神,引领着一场前所未有的数字化征程。这不仅仅是一次冒险,更是对未知的深度探索,将科技的力量推向新的高度。 Vatee万腾在科技领域敢于挑战传统,积极探索未知的可能…

Android Frameworks 开发总结之七

1.修改android 系统/system/下面文件时权限不够问题 下面提到的方式目前在Bobcat的userdebug image上测试可行,还没有在user上测试过. 修改前: leifleif:~$ adb root restarting adbd as root leifleif:~$ adb disable-verity verity is already disabled using …

SAP从放弃到入门系列之-制造商零件编号-MPN 物料

文章目录 一、概念二、 配置点配置点1:启用MPN配置点2:MPN配置参数文件配置点3:激活库存管理的MPN所有功能变化1:MM01界面有库存管理制造商零部件号的字段:变化2:MM60界面的查询条件多了MPN物料号变化3&…

数据结构 | 堆【图解】

数据结构 | 堆【图解】 文章目录 数据结构 | 堆【图解】堆的概念及结构堆的实现堆的初始化堆的插入【重点】堆的删除【重点】取堆顶的数据堆的数据个数堆的判空堆的销毁 全部代码 堆的概念及结构 堆(heap): 一种有特殊用途的数据结构——用来…

面试题:工作中做过 JVM 调优吗?怎么做的?

文章目录 前言cpu占用过高死锁内存泄漏上面只是其中一种处理方法 总结 前言 最近很多小伙伴跟我说,自己学了不少JVM的调优知识,但是在实际工作中却不知道何时对JVM进行调优。今天,我就为大家介绍几种JVM调优的场景。 在阅读本文时&#xff…

SSM企业风向管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM 企业风向管理系统是一套完善的信息系统,结合springMVC框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库 ,系统主要采用B/…

算法基础之表达式求值

算法基础之表达式求值 中序表达式求值 用栈 将字符和数字分别用栈存储 由下往上计算 左子树算完再算右子树 判断方法&#xff1a;当前符号优先级<前一个符号优先级 则左右子树已遍历完 #include<iostream>#include<cstring>#include<stack>#include&l…

windbg双机调试

1&#xff1a;虚拟机增加串行端口 2&#xff1a;操作步骤&#xff1a;编辑虚拟机设置 -> 添加 -> 串行端口 -> 完成 参数配置&#xff1a;使用命名管道 -> \\.\pipe\com_1 -> 该端是服务器&#xff0c;另一端是应用程序 -> 轮询时主动放弃CPU->确定 3 -b…

【阿里云】图像识别 智能分类识别 项目开发(一)

语音模块和阿里云图像识别结合 环境准备 代码实现 编译运行 写个shell脚本用于杀死运行的进程 语音模块和阿里云图像识别结合 使用语音模块和摄像头在香橙派上做垃圾智能分类识别 语音控制摄像下载上传阿里云解析功能点实现 环境准备 将语音模块接在UART5的位置 在orange…

安卓 Android Studio更换app的图标

大概完成了一个app&#xff0c;在测试机的界面app的icon显示的是默认安卓图标&#xff0c;找了一个简单的更换方法 打开 Androidmanifest.xml 文件&#xff0c;在 application 找到代码 android:icon"mipmap/ic_launcher" 按下Ctrl鼠标左键转到相应位置 如图在背景…

Apache Superset数据分析平台如何实现公网实时远程访问数据【内网穿透】

文章目录 前言1. 使用Docker部署Apache Superset1.1 第一步安装docker 、docker compose1.2 克隆superset代码到本地并使用docker compose启动 2. 安装cpolar内网穿透&#xff0c;实现公网访问3. 设置固定连接公网地址 前言 Superset是一款由中国知名科技公司开源的“现代化的…

SpringCloud 微服务全栈体系(十七)

第十一章 分布式搜索引擎 elasticsearch 七、搜索结果处理 搜索的结果可以按照用户指定的方式去处理或展示。 1. 排序 elasticsearch 默认是根据相关度算分&#xff08;_score&#xff09;来排序&#xff0c;但是也支持自定义方式对搜索结果排序。可以排序字段类型有&#…

跑步运动耳机哪个牌子好?运动型无线耳机排行榜

​运动耳机是我们运动时不可或缺的装备&#xff0c;它可以让你享受高品质的音乐&#xff0c;还提供了高舒适佩戴体验以及稳定的连接。然而面对市面上层出不穷的运动耳机&#xff0c;到底哪款更值得入手&#xff1f;今天我为大家推荐几款市面上备受好评的运动耳机&#xff0c;是…

代码随想录算法训练营第四十四天|57. 爬楼梯、322.零钱兑换、279. 完全平方数

KamaCoder 57. 爬楼梯 题目链接&#xff1a;题目页面 (kamacoder.com) 这道题使用完全背包来实现&#xff0c;我们首先考虑的是总的楼梯数&#xff0c;因此dp数组大小为n 1 &#xff0c;其意义是&#xff0c;在n阶时有多少种方法爬到楼顶&#xff0c;因此&#xff0c;当前n状…

zerotier 搭建 moon中转服务器 及 自建planet

搭建moon 服务器 环境准备 # 安装依赖 yum install wget gcc gcc-c git -y yum install json-devel -y# 下载及安装 curl -s https://install.zerotier.com/ | sudo bash节点ID 配置 配置moon.json文件 cd /var/lib/zerotier-one/# 导出依赖 zerotier-idtool initmoon ide…

AI赋能数据表设计

数据表设计软件用过多种&#xff0c;用Ai 设计表几年Ai大模型爆发之后提升了新的高度 用navicat 设计表就是在跟团队的人介绍这次功能的表结构时&#xff0c;没办法看备注&#xff0c;只能看英文字段&#xff0c;导致在比较复杂的表中&#xff0c;总是在表结构和图形结构中来回…