docker 容器操作

容器是docker的另一个核心概念。简单的说,容器是镜像的一个运行实例。所不同的
是,镜像是静态的只读文件,而容器带有运行时需要的可写文件层,容器就是独立运行的一
个或一组应用以及它们所必需的运行环境,包括文件系统、系统类库、shell环境等。本节
将具体介绍围绕容器的重要操作,包括创建一个容器、启动容器、终止一个容器、进入容器
内执行操作、删除容器和通过导入导出容器来实现容器迁移等。

1、创建容器

1)新建容器
可以使用docker create命令新建一个容器,例如:

1.png

-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
-i让容器的标准输入保持打开(即交互式)
还可以使用--name给容器起个形象的名称

2)启动容器

使用docker create命令新建的容器处于停止状态,可以使用docker start命令来启动它。


2.png

3)新建并启动容器
可以直接新建并启动容器,所需命令主要为docker run,等价于先执行docker create命令,再执行docker start命令。下面的命令输出一个“Hello World”,之后终止容器。


3.png

这跟在本地直接执行 /bin/echo 'hello world' 几乎感觉不出任何区别.当利用docker run 来创建容器时,Docker 在后台运行的标准操作包括:

检查本地是否存在指定的镜像,不存在就从公有仓库下载

利用镜像创建并启动一个容器

分配一个文件系统,并在只读的镜像层外面挂载一层可读写层

从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去

从网桥的地址池配置一个IP地址给容器

执行用户指定的应用程序

执行完毕后容器被终止

下面的命令则启动一个 bash 终端,允许用户进行交互。


4.png

在交互模式下,用户可以通过所创建的终端来输入命令,例如


5.png

容器的核心为所执行的应用程序,所需要的资源都是应用程序运行所必需的。除此之外,并没有其它的资源。可以在伪终端中利用ps或 top 来查看进程信息。


6.png

可见,容器中仅运行了指定的 bash 应用。这种特点使得 Docker 对资源的利用率极高,是货真价实的轻量级虚拟化。

如果这个时候我们正常退出,输入exit 或者Ctrl+d命令后,容器就自动处于退出(Exited)状态了。docker ps –a 查看容器处于Exit 状态。


7.png

也可以退出容器而不结束容器进程,输入 Ctrl-q + Ctrl-p , 就像先按 CTRL -p 然后CTRL –q 退出伪终端,而不结束容器。


8.png

发现退出容器了,但是容器依然在运行,可以随时进入容器:


9

4)守护态运行
更多的时候,需要让 Docker 容器在后台以守护态(Daemonized)形式运行。此时,
可以通过添加 -d 参数来实现。例如下面的命令会在后台运行容器。

10.png

此时,如果要获取容器的输出信息,可以使用docker logs命令
11.png

容器启动后会返回一个唯一的 id,也可以通过docker ps命令来查看容器信息。
docker run -d运行一个新的容器,我们通过-d命令让他作为一个后台运行
centos:centos6是一个我们想要在内部运行命令的镜像
/bin/sh -c是我们想要在容器内部运行的命令
while true; do echo hello world; sleep 1; done这是一个简单的脚本,我们仅仅只是每秒打印一次 hello word 一直到我们结束它.
或者:
12.png

然后使用docker ps命令查看启动的容器:
13.png

常用容器操作命令:

docker stop d17f8988a49e停止一个容器
docker start d17f8988a49e 启动一个容器
docker restart d17f8988a49e 重启一个容器
docker inspect d17f8988a49e查看容器详细信息

可以使用inspect查看容器IP地址:

 docker inspect -f '{{.NetworkSettings.IPAddress}}'
d17f8988a49e  
1.png

还可以查看主机名


2.png
进入容器

在使用 -d 参数时,容器启动后会进入后台。某些时候需要进入容器进行操作,有很多种方法,包括使用docker attach 命令或nsenter命令。
使用docker attach进入容器


1.png

2.png

1.docker attach 允许我们进入后台进程.

2.--sig-proxy=false不使用容器转发信号,允许我们使用 ctrl -c来退出,执行docker

ps查看在后台运行

但是使用 attach命令有时候并不方便。当多个窗口同时attach 到同一个容器的时候,所
有窗口都会同步显示。当某个窗口因命令阻塞时,其他窗口也无法执行操作了。

也可以执行docker exec进入运行的容器

docker exec -it 容器ID/名称 /bin/bash

以上命令返回一个命令界面,exec代表直接在容器中运行命令


3.png

使用nsenter进入容器
安装
nsenter工具在util-linux包2.23版本后包含。如果系统中util-linux包没有该命令,可以按照
下面的方法从源码安装

wget  https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz

tar util-linux-2.24.tar.gz

cd util-linux-2.24

 ./configure --without-ncurses && make nsenter

cp nsenter /usr/local/bin

nsenter可以访问另一个进程的名字空间。nsenter要正常工作需要有 root 权限
centos7使用的是util-linux-2.23,所以就直接使用系统提供的util-linux包了。


1.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • 容器是 Docker 又一核心概念。简单的说,容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机...
    傲剑天涯阅读 291评论 0 0
  • 《Docker从入门到实践》阅读笔记 原书地址: https://yeasy.gitbooks.io/docker...
    GuoYuebo阅读 11,352评论 1 39
  • 一.docker 是什么: 2.安装docker 系统:ubuntu16.04 使用脚本自动安装 Docker 官...
    Black_Sun阅读 2,102评论 0 2
  • 哥:你吃瓜嘛? 我:吃呀吃呀,你帮我弄么 哥:人呢,又出去了,刚刚不还在吗 我:我没走我在家,我吃 嫂子:又出去了...
    小7呢阅读 117评论 0 0
  • 焚香拜读那传世经典,檀香朱笔追寻那诗情意境,心静之时灵感丰,情满之时意境浓,端坐茶海细品那人生百味,冥想之时,看那...
    范春龙阅读 187评论 0 1