接着上面一篇:三文搞懂学会Docker容器技术(上)

6,Docker容器

6.1 创建并启动容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

--name="容器新名字":为容器指定一个名称;

-i:以交互模式运行容器,通常与-t或者-d同时使用;

-t:为容器重新分配一个伪输入终端,通常与-i同时使用;

-d: 后台运行容器,并返回容器ID;

-P: 随机端口映射,容器内部端口随机映射到主机的端口

-p: 指定端口映射,格式为:主机(宿主)端口:容器端口

 启动普通容器: docker run --name 别名 镜像ID

启动交互式容器:  docker run -it --name 别名 镜像ID   来运行一个容器,取别名,交互模式运行,以及分配一个伪终端

 守护式方式创建并启动容器

docker run -di --name 别名 镜像ID

执行完命令后,终端依然再宿主机上;

启动容器,并执行/bin/bash命令;

docker run -it --name 别名 镜像ID  /bin/bash命令

端口映射;

docker run -it -p 8888:8080 tomcat

docker run -it -P tomcat

6.2 列出容器

docker ps [OPTIONS]

OPTIONS说明:

-a :显示所有的容器,包括未运行的。

-f :根据条件过滤显示的内容。

--format :指定返回值的模板文件。

-l :显示最近创建的容器。

-n :列出最近创建的n个容器。

--no-trunc :不截断输出。

-q :静默模式,只显示容器编号。

-s :显示总的文件大小。

docker ps 查看正在运行的容器

docker ps -a 查看所有容器

docker ps -n 2  显示最近创建的2个容器

docker ps -f status=exited 查看停止的容器

6.3 退出容器

exit 容器停止退出

ctrl+P+Q 容器不停止退出

6.4 进入容器

docker attach 容器ID or 容器名

6.5 启动容器

docker start 容器ID or 容器名

6.6 重启容器

docker restart 容器ID or 容器名

6.7 停止容器

docker stop 容器ID or 容器名

暴力删除,直接杀掉进程 (不推荐)

docker kill 容器ID or 容器名

6.8 删除容器

docker rm 容器ID  

如果删除正在运行的容器,会报错,我们假如需要删除的话,需要强制删除;

强制删除docker rm -f 容器ID

删除多个容器

docker rm -f 容器ID1  容器ID2 中间空格隔开

删除所有容器

docker rm -f $(docker ps -qa)

6.9 宿主机和容器之间文件拷贝

宿主机文件 copy to 容器内

docker cp 需要拷贝的文件或者目录   容器名称:容器目录

容器内 copy to 宿主机

docker cp 容器名称:容器目录    宿主机目录

6.10 查看容器日志

$ docker logs [OPTIONS] CONTAINER

Options:

--details        显示更多的信息

-f, --follow         跟踪实时日志

--since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)

--tail string    从日志末尾显示多少行日志, 默认是all

-t, --timestamps     显示时间戳

--until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

(以上了解)

锋哥推荐,简单粗糙方式,直接去docker容器文件里找;

具体未知:/var/lib/docker/containers/

每个容器对应一堆文件,然后有个log结尾的,就是日志文件;

我们打开;

很直观 假如时间长了 日志文件很大,直接自己操刀处理即可;

6.11 查看容器进程

docker top 容器ID

6.12 进入容器执行命令

docker exec -it 容器名称 或者 容器ID 执行命令

直接操作容器,执行完 回到 宿主主机终端;

我们一般用于 启动容器里的应用 比如 tomcat nginx redis elasticsearch等等

6.13 提交运行时容器成为镜像

docker commit

docker commit -a='作者' -m='备注' 运行时容器ID 新镜像名称

6.14 推送镜像到hub服务器

我们可以通过docker push命令 把自己本地定制的镜像推送到Hub服务器,方便全球开发者使用,包括自己;

上一讲,我们定制了一个镜像 java1234/tomcat7 tag是1.1

我们把这个镜像发布到hub服务器;

步骤一:

https://hub.docker.com/ 注册下 得到docker id和密码

 

步骤二:

我们用docker login登陆hub服务器

 

步骤三:

docker push推送

docker push java1234/tomcat7:1.1

推送成功:

登陆 https://hub.docker.com/   点击 Repositories 菜单

已经显示这个镜像;

点击:

我们加简介和描述信息;

点Tags:

我们可以删除掉;

6.15 推送镜像到阿里云

很多时候,中小公司为了方便搭建私有仓库方便,直接使用稳定的阿里云镜像仓库,方便公司内部业务系统直接拉取镜像;

步骤一:

进入:https://cr.console.aliyun.com  阿里云镜像控制台  需要注册  用户名就是你的淘宝或者支付宝 账号名称 ,镜像控制台密码单独设置;

步骤二:

进入控制台,我们先创建命名空间,再创建镜像;

然后我们可以根据阿里云官方提示说明来进行镜像远程登录,提交,以及拉取操作,简单易用;

6.16 查看容器元信息

docker inspect 容器ID

------------------------------------------------------------------------------------------------------------------------------

作者:java1234_小锋

出处:https://www.cnblogs.com/java688/p/13174646.html

版权:本站使用「CC BY 4.0」创作共享协议,转载请在文章明显位置注明作者及出处。

------------------------------------------------------------------------------------------------------------------------------

三文搞懂学会Docker容器技术(中)的更多相关文章

  1. 三文搞懂学会Docker容器技术(下)

    接着上面一篇:三文搞懂学会Docker容器技术(上) 三文搞懂学会Docker容器技术(中) 7,Docker容器目录挂载 7.1 简介 容器目录挂载: 我们可以在创建容器的时候,将宿主机的目录与容器 ...

  2. 三文搞懂学会Docker容器技术(上)

    1,Docker简介 1.1 Docker是什么? Docker官网: https://www.docker.com/ Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2. ...

  3. 一文搞懂各种 Docker 网络 - 每天5分钟玩转 Docker 容器技术(72)

    前面各小节我们先后学习了 Docker Overaly,Macvaln,Flannel,Weave 和 Calico 跨主机网络方案.目前这个领域是百家争鸣,而且还有新的方案不断涌现. 本节将从不同维 ...

  4. 第 8 章 容器网络 - 072 - 一文搞懂各种 Docker 网络

    Docker 起初只提供了简单的 single-host 网络,显然这不利于 Docker 构建容器集群并通过 scale-out 方式横向扩展到多个主机上. 跨主机网络方案: Docker Over ...

  5. 072、一文搞懂各种Docker网络 (2019-04-17 周三)

    参考https://www.cnblogs.com/CloudMan6/p/7587532.html   前面各个小节我们学习了 Docker Overlay .Macvlan .Flannel.We ...

  6. 一文搞懂Java/Spring/Dubbo框架中的SPI机制

    几天前和一位前辈聊起了Spring技术,大佬突然说了SPI,作为一个熟练使用Spring的民工,心中一紧,咱也不敢说不懂,而是在聊完之后赶紧打开了浏览器,开始的学习之路,所以也就有了这篇文章.废话不多 ...

  7. 一文搞懂Google Navigation Component

    一文搞懂Google Navigation Component 应用中的页面跳转是一个常规任务, Google官方提供的解决方案是Android Jetpack的Navigation componen ...

  8. 一文搞懂 Prometheus 的直方图

    原文链接:一文搞懂 Prometheus 的直方图 Prometheus 中提供了四种指标类型(参考:Prometheus 的指标类型),其中直方图(Histogram)和摘要(Summary)是最复 ...

  9. 【转帖】一文看懂docker容器技术架构及其中的各个模块

    一文看懂docker容器技术架构及其中的各个模块 原创 波波说运维 2019-09-29 00:01:00 https://www.toutiao.com/a6740234030798602763/ ...

随机推荐

  1. 用非常硬核的JAVA序列化手段实现对象流的持久化保存

    目录 背景 对象流的概念 对象流实例 引入一张组织结构图 定义组织架构图的类 类的完整结构 用对象流保存组织架构的对象信息 核心代码 用对象流读取文件并输出 核心代码 总结 背景 在OOP(面向对象编 ...

  2. Android_适配器(adapter)之BaseAdapter

    BaseAdapter是应用最多的一种适配了.它是一个抽象类,需要重写方法完成自定义适配器的功能,这就比较自由灵活,能实现各种想要的效果. 之前讲到的SimpleAdapter和ArrayAdapte ...

  3. [Objective-C] 011_数据持久化_NSKeyedArchiver

    在日常开发中对于NSString.NSDictionary.NSArray.NSData.NSNumber这些基本类的数据持久化,可以用属性列表的方法持久化到.plist 文件中.但是一些我们自定义的 ...

  4. Rocket - tilelink - SRAM

    https://mp.weixin.qq.com/s/-z9n6SHyAiK2OE7mOSvC2Q   简单介绍SRAM的实现.   ​​   1. 基本介绍   实现一个支持读写的静态存储器.存取的 ...

  5. 【Storm】编程模型

    元祖(tuple) 元组(Tuple),是消息传递的基本单元,是一个命名的值列表,元组中的字段可以是任何类型的对 象. Storm使用元组作为其数据模型,元组支持所有的基本类型.字符串和字节数组作为字 ...

  6. 数组API汇总

    数组API汇总   Javascript数组API: 1.将数组转化为字符串:2种: 1.var str=String(str); 将数组转化为字符串并分隔每个元素; var arr=[1,2,3]; ...

  7. 自制基于python的DoU log分析脚本

    工作中测试DoU的log需要分析,原先是使用excel,去ctrl c,ctrl v截取数据,整理格式等等.一来,这工作虽然很简单,但是非常耗时,不熟练的人(比如我)一搞搞个半天:二来,不小心还会出现 ...

  8. Java实现 LeetCode 398 随机数索引

    398. 随机数索引 给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引. 您可以假设给定的数字一定存在于数组中. 注意: 数组大小可能非常大. 使用太多额外空间的解决方案将不会通过测试 ...

  9. Java实现 LeetCode 26 删除排序数组中的重复项

    26. 删除排序数组中的重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) ...

  10. Java实现 LeetCode 21 合并两个有序链表

    21. 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1 ...