《第一本Docker书》笔记

初步

确认Docker信息:

docker info

镜像

查看镜像

docker images

镜像搜索

docker search ubuntu

获取镜像

docker pull ubuntu

构建镜像

  • docker commit
  • DockerFile

容器

创建容器

可交互式容器

启动可交互式容器:

docker run -i -t ubuntu /bin/bash
  1. -t -i标志保证了启动的容器是一个可交互式的:-i标志保证容器中STDIN 是开启的;-t说明创建的容器分配一个伪tty终端。
  2. ubuntu表示一个基础镜像,容器是基于此创建的
  3. /bin/bash表示容器启动后将运行怎样的命令

守护式容器

守护式容器类似于后台进程或服务,不像是一个前台会话进程需要时刻等待键盘输入命令进行交互式会话。

docker run --name you_container_name -d  ubuntu .... 

使用-d来指示该容器是一个守护石(运行于后台的)容器。

容器的命名

docker run --name your_container_name -it ubuntu /bin/bash

给容器命名(名称为your_container_name),此后可以用容器名来代替容器,因此容器名必须是唯一的。如果没有指定容器名,则会随机分配一个容器名。

挂载本地目录到容器之中

docker run -it -v /host/dir:/container/dir ubuntu64 /bin/bash
  • 通过-v参数,冒号前为宿主机目录,必须为绝对路径;冒号后为镜像内挂载的路径。
  • 默认挂载的路径权限为读写。如果指定为只读可以用:ro标签,即-v /host/dir:/container/dir:ro

查看容器

docker ps -a

其中-a选项表示显示所有容器,包括停止和正在运行的;若无此项,表示只显示正在运行的容器。

docker ps -l

列出最后一次运行的容器。

docker ps -n 5

列出最后(使用的)5个容器,不管是正在运行还是已经停止。这里5可以指定为别的数字。

docker insepct your_container_name

表示获取容器详细信息,包括配置信息、名称、命令、网络配置等,以JSON格式。

启动容器

启动已经停止的容器

docker start your_container_name

可以使用容器名或者容器ID来指代该容器。容器ID只要输入足以确定该容器的数字位数即可。
也可以使用:

docker restart your_container_name

注意!
使用docker start命令只是启动了容器,并且会沿用当时docker run命令时指定的参数来运行。假若参数指定容器启动时是可交互的shell界面,docker start无法切换到shell界面,还需要使用docker attach命令来切换

容器附着

Docker容器重新启动的时候, 会沿用docker run命令时指定的参数来运行, 因此,如果我们容器重新启动后是运行一个交互式会话shell,则要用docker attach命令, 重新附着到该容器的会话上:

docker attach your_container_name

容器的自动重启

由于某种错误而导致容器停止运行,我们希望创建的容器可以按照指定的方式来自动重启

docker run --restart=always  --name your_container_name -d ubuntu ...
  • 关键是选项--restart=always,表示无论容器的退出代码是什么(包括成正常退出,退出代码0), Docker都会自动重启该容器。
  • 还可以将这个标志设为--restart=on-failure, 这样, 只有当容器的退出代码为非0值的时候,才会自动重启。
  • --restart=on-failure:5表示当容器退出代码为非0时, Docker 会尝试自动重启该容器, 最多重启5 次。

容器内进程的操作

查看正在运行的容器内的进程

docker top yout_container_name

在容器内启动新进程

在Docker命令行界面可以直接命令某个容器启动一个新的进程

docker exec -d your_container_name touch /etc/new_config_file

这表示,使命为your_container_name的正在运行的容器执行命令touch /etc/new_config_file(即启动进程执行命令)。-d表示这个进程是后台进程

docker exec -t -i your_container_name /bin/bash

表示在your_container_name容器内部启动一个进程/bin/bash-i -t(或者合起来-it)指示是一个可交互进程。

容器的停止

docker stop your_container_name
docker kill your_container_name

docker stop会向Docker容器进程发送SIGTERM信号。如果想快速停止某个容器,也可以使用docker kill命令来向容器进程发送SIGKILL信号。

删除容器

docker rm your_container_name

注意!正在运行中的容器是无法删除的。

可以使用以下命令一次性删除所有的容器

docker rm `docker ps -a -q`

-a标志代表列出所有(all)容器,而-q标志则表示只需要返回容器的ID而 不会 返回容器的其他信息。

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