笔记-docker学习-1

一、docker安装

1、CentOS Docker安装

安装命令如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

也可以使用国内 daocloud 一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

2、其它系统的安装

由于本人使用的CentOS,所以其它系统的安装不再说明,可以参考教程,https://www.runoob.com/docker/centos-docker-install.html

二、docker命令

1、 docker run :创建一个新的容器并运行一个命令,其中IMAGE就是镜像,镜像与容器的关系简单的来说镜像就像是一个没有安装的软件包,一个镜像可以产生多个容器(运行或者创建多次),但是每个容器的名字和Id都不能相同。

语法:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]  实例:docker run -it -d --name mysql -p3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql,执行成功后如下图,会出现mysql的标识符
实例说明:-it 是指定容器以交互模式运行,并且为容器分配一个伪终端,可以在终端中执行mysql的一些命令 --name 是容器名称  -p指定主机端口

OPTIONS说明:

  • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
  • -d: 后台运行容器,并返回容器ID;
  • -i: 以交互模式运行容器,通常与 -t 同时使用;
  • -P: 随机端口映射,容器内部端口 随机映射到主机的端口
  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • –name=”nginx-lb”: 为容器指定一个名称;
  • –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
  • –dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
  • -h “mars”: 指定容器的hostname;
  • -e username=”ritchie”: 设置环境变量;
  • –env-file=[]: 从指定文件读入环境变量;
  • –cpuset=”0-2″ or –cpuset=”0,1,2″: 绑定容器到指定CPU运行;
  • -m :设置容器使用内存最大值;
  • –net=”bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container:
  • –link=[]: 添加链接到另一个容器;
  • –expose=[]: 开放一个端口或一组端口;
  • –volume , -v:绑定一个卷

2、 Docker start/stop/restart 命令 :启动/停止/重启容器

实例:docker start mysql

3、 docker kill 杀掉一个运行中的容器。不删除数据

实例:docker kill -s KILL mynginx

OPTIONS说明:-s:指定发送的信号,默认为”KILL”

4、 docker rm删除一个或多个容器。会删除数据

实例:docker rm -f db01 db02 强制删除容器名称为 db01、db02的容器

OPTIONS说明:

  • -f :通过 SIGKILL 信号强制删除一个运行中的容器。
  • -l :移除容器间的网络连接,而非容器本身。
  • -v :删除与容器关联的卷。

5、 docker pause/unpause暂停或者恢复容器中所有进程

实例:docker pause db01 暂停容器 db01中的所有进程

6、 docker create创建一个新的容器但不启动它,语法同 docker run

实例:docker create –name mysqltest mysql :latest 创建mysql容器并且命名为mysqltest

7、 docker exec在运行的容器中执行命令

实例:docker exec -it de4ab36b1b59 bash de4ab36b1b59是容器Id,运行容器,并且分配一个伪终端,接下来就可以输入运行的容器命令,输入exit可退出伪终端

OPTIONS说明:

  • -d :分离模式: 在后台运行
  • -i :即使没有附加也保持STDIN 打开
  • -t :分配一个伪终端

8、 docker inspect获取容器/镜像的元数据。

实例:docker inspect mysql 获取镜像mysql的元信息。 运行结果如下:

OPTIONS说明:

  • -f :指定返回值的模板文件。
  • -s :显示总的文件大小。
  • –type :为指定类型返回JSON。

9、 docker top查看容器中运行的进程信息,支持 ps 命令参数。

实例:for i in docker ps |grep Up|awk '{print $1}';do echo \ &&docker top $i ;done 查看所有运行容器的进程信息

实例:docker top mysql-test 查看容器名称 为mysql-test容器的进程信息

10、 docker attach连接到正在运行中的容器

实例:docker attach –sig -proxy =false mynginx 容器mynginx将访问日志指到标准输出,连接到容器查看访问信息。

11、 docker event从服务器获取实时事件

实例:docker events –since =”1467302400″ 查看 2016年7月1日后的所有事件。 –since是指定的时间戳

实例:docker events -f “image”=”mysql”–since =”1467302400″ 显示docker 镜像为mysql 2016年7月1日后的相关事件。

OPTIONS说明:

  • -f :根据条件过滤事件;
  • –since :从指定的时间戳后显示所有事件;
  • –until :流水时间显示到指定的时间为止;

12、 docker logs获取容器的日志

实例:docker logs -f mysql-test 跟踪查看容器mysql 的日志输出。 其中mysql-test是容器名称

OPTIONS说明:

  • -f :跟踪日志输出
  • –since :显示某个开始时间的所有日志
  • -t :显示时间戳
  • –tail :仅列出最新N条容器日志

13、 docker wait阻塞运行直到容器停止,然后打印出它的退出代码。

实例:docker wait de4ab36b1b59 de4ab36b1b59是容器Id

14、 docker export 将文件系统作为一个tar归档文件导出到STDOUT。

实例:docker export -o mysql –date +%Y%m%d.tar de4ab36b1b59

ls mysql –date +%Y%m%d.tar 列出以mysql-日期.tar文件

mysql -20220622.tar

其中de4ab36b1b59 是容器Id

OPTIONS说明:
-o :将输入内容写到文件。

15、 docker port列出指定的容器的端口映射,或者查找将PRIVATE_PORT NAT到面向公众的端口。

实例:docker port mysql-test 查看容器名为mysql-test的端口映射情况。

Original: https://www.cnblogs.com/ithome8/p/16399867.html
Author: IT之家
Title: 笔记-docker学习-1

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/591818/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • eclipse连接MySQL 8.0.29.0

    推荐文章: eclipse导入JDBC MySQL详细安装 菜鸟java MySQL连接教程 步骤: 找到MySQL的连接Java的jar文件; 如下图: 在eclipse项目文件…

    数据库 2023年5月24日
    0100
  • 文件传输工具:FileZilla的使用

    FileZilla FileZilla 是一款高效的 FTP 客户端工具。FileZilla 可以帮助您将本地计算机上的文件上传到虚拟主机实例中。 FileZilla 界面介绍 如…

    数据库 2023年6月11日
    081
  • Redis-持久化

    因为Redis是内存操作,意味着掉电就GG, 所以为了保证异常重启等问题后能尽快恢复服务,还是需要一定的持久化机制来保证。Redis提供了两种持久化机制: AOF Append O…

    数据库 2023年6月11日
    092
  • mysql总结-思维导图

    posted on2022-05-08 21:45 搁浅的小鲸鱼 阅读(23 ) 评论() 编辑 Original: https://www.cnblogs.com/komoreb…

    数据库 2023年6月11日
    061
  • LeetCode 35. 搜索插入位置

    给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 …

    数据库 2023年6月11日
    059
  • 多线程基础知识!!!

    1.1、继承Thread类(重点) public class MyThread extends Thread{ @Override public void run() { } pu…

    数据库 2023年6月16日
    080
  • 数据库多表查询 联合查询 增删改查

    插入 方式一 语法: insert into 表名 (字段名,…) values (值,…); 特点: 1、要求值的类型和字段的类型要一致或兼容 2、字段的个数和顺序不一定…

    数据库 2023年6月16日
    0136
  • 「开源推荐」一个通用的后台管理系统

    最近跟朋友组了个团队一起做一款开源产品,所以在找一款好用的,功能性强的后台管理系统,找了几天资料,了解了很多后台管理系统,最后发现了一款功能完整,代码结构清晰而且还开源的后台管理系…

    数据库 2023年6月14日
    074
  • MySQL45讲之InnoDB刷脏策略

    本文介绍 InnoDB 的刷脏控制策略,它是如何控制刷脏速率的,以及一些相关参数。 了解 MySQL 的刷脏策略有什么意义? 当一条正确的 SQL 执行时偶尔延迟较高,无法复现场景…

    数据库 2023年5月24日
    063
  • 小姐姐用动画图解Git命令,一看就懂!

    无论是开发、运维,还是测试,大家都知道Git在日常工作中的地位。所以,也是大家的必学、必备技能之一。之前公众号也发过很多git相关的文章: 但是呢,民工哥,也经常在后台看到读者说,…

    数据库 2023年6月9日
    076
  • Java中AES加密和解密的方法分享

    转自: http://www.java265.com/JavaJingYan/202206/16559759223818.html 下文笔者讲述java代码实现的AES加密和解密的…

    数据库 2023年6月11日
    088
  • 如何构建你自己的计算机网络知识体系?

    大家好,我是小牛肉,不知道各位曾经有没有和我一样的困惑,就是有些知识好像已经看了好多遍了,但是知识点在脑子中是分散的,没办法串联起来,别人问一个问题我能答出来一点,但是你让我自己从…

    数据库 2023年6月6日
    075
  • 动手实验查看MySQL索引的B+树的高度

    一:文中几个概念 h:统称索引的高度;h1:主键索引的高度;h2:辅助索引的高度;k:非叶子节点扇区个数。 二:索引结构 叶子节点其实是双向链表,而叶子节点内的行数据是单向链表,该…

    数据库 2023年6月14日
    087
  • gauss杀进程

    1)查询当前所有连接的状态 select datname,pid,application_name,state from pg_stat_activity; 2)关闭当前state…

    数据库 2023年6月16日
    077
  • git仓库push 和 pull只获取部分文件的方法

    gitee项目https://gitee.com/kehaoo/mytest目录结构如下其中part1.txt和part2.txt都是内容都是空的 在另一个文件夹将项目part1文…

    数据库 2023年6月11日
    093
  • HyperLogLog

    HyperLogLog 基数计数,不绝对准确。省空间,速度快 估计基数,对数级空间节省 可以理解为一种压缩,把基数压缩成二进制位数,只存储位数,如果旧有的数据再加入时肯定不会改变位…

    数据库 2023年6月9日
    063
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球