Doker容器(上)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Doker容器

容器是Docker 的三大核心概念之一,使应用程序运行的基础环境,下面我们就来具体讲解一下Docker容器。


一、什么是容器

所谓容器就是镜像的一个运行实例,并且带有运行时需要的可写的文件层,其中的应用程序也处于运行状态。很多人会把容器和虚拟机相混淆,虚拟机是模拟运行一整套操作系统,虚拟机模拟的东西不管应用是否使用都会存在。容器是里运行的N个应用和应用所必需的环境,也就是说应用不需要的东西,容器是不会加入的。


二、创建容器

  1. 新建容器

新建容器一般使用 create 命令,具体语法如下:

docker [container] create

例如我们要创建ubuntu 16.04的容器,docker 命令如下:

docker create ubuntu:16.04

使用 create 命令创建的容器是出于停止状态的,可以使用 start 命令来启动,start 命令将在下一小节讲解。 create 命令参数很多,包含如下3大类:

  • 与容器运行模式相关;
  • 与容器环境配置相关;
  • 与容器资源限制和安全保护相关。

因为命令参数很多,因此这里只讲解常用的几个:


  • -i:保持标准输入打开,默认值为 false;
  • -t:是否分配一个伪终端,默认值 false;
  • -d:是否在后台运行容器,默认值 false;
  • –expose=[]:指定容器暴露出来的端口或端口范围;
  • –net="":指定容器网络模式;
  • –add-host=[]:在容器内添加一个主机名到IP地址的映射关系;
  • –device=[]:映射物理机上的设备到容器内;
  • -e:指定容器内的变量环境;
  • –ip="": 指定容器的ip v4 地址;
  • –ip6="":指定容器的ip v6 地址;
  • –link:连接到其他容器;
  • –name:容器的别名;


2.启动容器

启动容器使用 start 命令,语法如下:

docker [container] start

例如启动刚才我们创建的ubuntu容器,容器ID为 b58a44432c7b

docker start b58a44432c7b

输出结果如图:

image.png

3. 新建同时启动容器
新建容器需要用到 run 命令,语法格式如下:

docker [container] run

例如我们运行一个新ubuntu16.04 容器,并将名称命名为 new_ubuntu

docker run --name new_ubuntu ubuntu /bin/echo '你好'

执行结果如下图:

image.png

执行 run 命令会在后台执行如下操作:

  • 检查本地是否存在指定镜像,不存在就从镜像仓库下载;
  • 利用镜像创建一个容器,并启动容器;
  • 分配一个文件系统给容器,并在只读镜像层外面挂载一层可读写层;
  • 从宿主机配置的网桥接口中桥接一个虚拟机接口到容器中;
  • 从网桥地址池配置一个IP地址给容器;
  • 执行用户指定的应用程序;
  • 执行完毕后容器终止。


注1:可以使用 docker container wait container命令来等待容器退出和查看退出的返回结果

注2:某些情况下,执行 run 命令是无法正常运行,导致容器直接退出,这个时候我们可以查看推出的错误代码,下面列出常见的几种错误代码:

image.png

4. 进入守护状态
在实际开发中需要容器一直运行着,这时我们可以在 run 命令后面加上 -d 参数来实现容器的后台运行,也就是进入守护状态。例如我们创建并运行ubuntu16.04容器,并将容器一直运行,可以这么做:

docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1;done;"

运行命令后结果如下

image.png

5. 查看容器输出
有时我们需要查看容器内部输出的信息,这时我们就可以使用 logs 命令查看,语法如下:

docker [container] logs

这个命令常用的参数如下:

  • -details:打印详细信息;
  • -f, -follow:持续输出;
  • -since:输出从指定时间点开始的日志;
  • -tail:输出最近的日志;
  • -t, -timestamps:显示信息时间戳;
  • -until:输出指定事件之前的日志。


例如查看刚才创建的ubuntu16.04的容器的日志:

6. 重启容器
当一个容器处于运行状态,如果要重启容器需要用到 restart 命令 ,语法格式如下:

docker [container] restart

例如重启刚才创建的ubuntu16.04 容器,可以这么做:

docker restart b58a44432c7b

执行结果如下:

1.png

目录
相关文章
|
2月前
|
C# 容器
39.c#:groupbox容器
39.c#:groupbox容器
20 1
|
2月前
|
存储 安全 测试技术
|
9月前
|
Java 容器
JMenuBar容器
JMenuBar容器
44 0
|
10月前
|
存储 算法 Java
什么是容器
什么是容器
115 0
|
敏捷开发 机器学习/深度学习 监控
阿里云容器服务
阿里云容器服务自制脑图, 容器服务支持在云服务器集群上,通过 docker 容器来运行或编排应用,在企业生产环境中,容器也能高效处理。当您的应用服务化后,使用安全、高可用的阿里云镜像仓库,帮您管理各个模块,如遇性能瓶颈,您只需针对相同的模块进行调整。这样更细粒度的微服务架构不仅实现了敏捷开发和部署落地,更有利于节省资源。
298 0
阿里云容器服务
|
Kubernetes 监控 Cloud Native
k8s容器
容器
263 0
|
设计模式 安全 Java
容器
容器
132 0
|
Kubernetes 安全 Java
当我们谈容器的时候,我们在谈什么
Docker 在当下很火,那么,当我们谈 Docker ,谈容器的时候,我们在谈什么?或者说,你对 Docker ,对容器了解吗?容器,到底是怎么一回事儿?
当我们谈容器的时候,我们在谈什么
|
Docker 容器
|
存储 容器