(四)运行第一个容器

创建第一个容器:

创建一个容器很容易,我们使用docker run命令就可以完成,如下图:

docker run -i -t centos:6.6 /bin/bash

run命令是docker命令中的一个子命令,作用是运行一个容器

参数 说明
-i 保持容器中的STDIN是打开的,也就是标准输入
-t 为容器开启一个伪TTY终端
centos:6.6
这个是镜像名称,这里适用的是官方镜像,centos是仓库名称,6.6是标签。一个仓库可能有多个镜像,如果不指定具体标签(TAG),则默认会适用latest的,也就是仓库中最新的。

如果是适用非官方镜像他人或者你自己构建的镜像,这里的各式是 用户名/仓库名

如果第一次你不知道镜像仓库名称和标签,请访问 https://hub.docker.com/

/bin/bash 容器启动后运行的程序,不是必须的

命令执行完毕后会自动进入容器中,正向上图显示的那样的命令提示符号是 [email protected] ,这一串字符是你建立容器的ID,同时也是默认的容器主机名称,如下图:

如果使用--name参数可以设置容器的名字,但是容器ID和系统主机名还是随机生成的。

docker run命令运行的过程是这样的

首先docker会检查本地的镜像是否包含centos:6.6,如果有就使用本地镜像,如果没有就连接官方的Docker Hub Registry去下载,如果找到就会下载然后保存到本机中,然后尝试使用该镜像创建一个容器,最后运行指定的命令。这个容器拥有自己的独立的文件系统、网络(默认为桥接网络)。

看下图,第一张为宿主机的目录内容,第二张为容器的目录内容,目录都是一样的,但是内容不同,这就证明文件系统是隔离的。

查看网络:

可以看到你会像使用普通Linux系统那样使用容器,同时默认使用了桥接网络。另外我们还可以安装软件

使用exit命令退出容器

一旦我们执行了exit命令,/bin/bash命令也就结束了,同时容器也停止了。但是容器还是存在的,可以通过下面的命令查看:

docker ps -a

如何重启启动一个容器:

使用下面的命令重新启动一个容器

docker start 容器名称/容器ID

我们看到 UP 标志,但是这个容器是后台运行的,那我们如何连接到这个容器的shell呢?

重新连接到运行中的容器:

必须要先启动一个容器,才能连接

docker attach 容器名称/容器ID

注意:运行命令后,会出现停滞的情况,其实不是停滞,你需要再次按一下回车才会进入到容器的命令提示符。当你再次执行exit后,容器会再次停止。


创建后台运行的容器:

如果需要长期运行容器,我们就要创建没有交互式会话的守护式容器,生产环境中基本都是这么运行运行的。我们使用下面的命令来后台运行容器:

使用-d参数来设置后台运行;--name的含义是设置一个容器名称,这样以后重启、删除就可以使用命令了。

docker run --name 容器名称 -d -i -t 镜像 /bin/bash

注意:上图创建容器后列出了一长串字符,这个是长UUID,一般我们使用短UUID或者容器名称来操作容器。

下面我们连接到这个BB容器

上面这个过程类似你先创建一个前台交互式容器,然后exit退出,然后在docker start启动。

时间: 2024-08-03 16:46:58

(四)运行第一个容器的相关文章

运行第一个容器 - 每天5分钟玩转容器技术(4)

为了让大家对容器有个感性认识,我们将尽快让一个容器运行起来. 首先我们需要搭建实验环境. 环境选择 容器需要管理工具.runtime 和操作系统,我们的选择如下: 管理工具 - Docker Engine因为 Docker 最流行使用最广泛. runtime - runcDocker 的默认 runtime 操作系统 - Ubuntu虽然存在诸如 CoreOS 的容器 OS,因考虑到我们目前处于初学阶段,选择大家熟悉的操作系统更为合适.等具备了扎实的容器基础知识后再使用容器 OS 会更有利. 安

【视频】运行第一个容器 - 每天5分钟玩转容器技术(5)

这两天制作的视频,安装 Docker 并运行第一个容器,希望对大家有帮助. 可在公众号(cloudman6)回复 "容器" 查看.

004、运行第一个容器(2018-12-19 周三)

参考https://www.cnblogs.com/CloudMan6/p/6727146.html 按照CloudMan的教程,编写了一个自动安装docker的脚本(和教程中一样,基于ubuntu16.04) #!/bin/bash #    该脚本基于 Ubuntu 16.04 64位 操作系统 #    设置主机名 echo 'docker-lab' >/etc/hostname hostname docker-lab #    配置Ubuntu源 cat >/etc/apt/sourc

每天学一点Docker(3)(制作你的第一个容器)

今天开始制作第一个容器,其实很简单 首先你要准备这些条件: 1.一个Ubuntu系统 2.这个系统能够联网,最起码ping www.baidu.com是可以的 这些准备条件准备好了,接下来就开始做准备工作. Docker 分为开源免费的 CE(Community Edition)版本和收费的 EE(Enterprise Edition)版本.下面我们将按照文档,通过以下步骤在 Ubuntu 16.04 上安装 Docker CE 版本. 这里下载的是CE版本. 配置Docker的apt源 打开u

SpringBoot启动流程分析(四):IoC容器的初始化过程

SpringBoot系列文章简介 SpringBoot源码阅读辅助篇: Spring IoC容器与应用上下文的设计与实现 SpringBoot启动流程源码分析: SpringBoot启动流程分析(一):SpringApplication类初始化过程 SpringBoot启动流程分析(二):SpringApplication的run方法 SpringBoot启动流程分析(三):SpringApplication的run方法之prepareContext()方法 SpringBoot启动流程分析(四

【C语言探索之旅】 第一部分第四课第一章:变量的世界之内存那档事

内容简介 1.课程大纲 2.第一部分第四课第一章:变量的世界之内存那档事 3.第一部分第四课第二章预告:变量的世界之声明变量 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算符 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创

【Linux探索之旅】第四部分第一课:压缩文件,解压无压力

内容简介 1.第四部分第一课:压缩文件,解压无压力 2.第四部分第二课:SSH连接,安全快捷 压缩文件,解压无压力 最近小编因为换工作,从南法搬到巴黎.折腾了很久. 网络一直用的是公共的无线网,信号不行.无线上网的box盒子已经说通网了,但我觉得墙上的线有问题.反正就是用不了自己的告诉WiFI盒子. 而且还要继续找房子,刚上班第一周,诸多事情,所以最近停更了很久.不好意思. 不过,现在又重新开始啦.木啊哈哈哈~ 百足之虫,死而不僵... 第四部分我们会讲Linux网络方面的一些知识点.既然讲到网

按照鬼哥学so变化,四,第一章的例子

跟随鬼哥伦比亚科学so变化,四.第一章的例子 图纸/文化  听鬼哥说故事 ---------------------------------------------切割线-------------------------------------------- 这篇文章是前段时间的文章,近期这个系列的so分析刚好能够做为一个实例教程.所以就补充拿回来了. 前三篇没看的.请继续关注博客,看完前面三篇. 趁热打铁,加深对so的分析过程,于是就有了这篇文章的补充·····················

Docker给运行中的容器添加映射端口

方法一: 1.获得容器IP将container_name 换成实际环境中的容器名docker inspect `container_name` | grep IPAddress 2. iptables转发端口将容器的8001端口映射到docker主机的81端口iptables -t nat -A DOCKER -p tcp --dport 81 -j DNAT --to-destination 192.168.0.2:8001 方法二: 1.提交一个运行中的容器为镜像 docker commit