docker 容器

容器:

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

新建、启动容器有两种方式:一、基于镜像新建一个容器并启动;二、将在终止状态的容器重新启动。所需要的命令为docker run等价于docker create -> docker start

当运行docker run时,docker在后台运行标准操作包括:

  1. 检查本地是否存在指定的镜像,不存在就从公有仓库下载
  2. 利用镜像创建并启动一个容器
  3. 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
  4. 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中
  5. 从地址池配置一个IP地址给容器
  6. 执行用户指定的应用程序
  7. 执行完毕后容器被终止
     
    例子:下面的命令启动一个bash终端,允许用户进行交互:
    $ sudo docker run -t -i ubuntu : 14.04/bin/bash
    -t选项让Docker分配一个伪终端并绑定到容器的标准输入上,-i 则让容器的标准输入保持打开。
    这样在交互模式下,用户可以通过所创建的终端来输入命令,如:pwd、ls、ps
    退出容器:可以使用Ctrl+d、exit命令(这里其实是退出了应用程序,那么紧跟着容器也就没有运行的必要了,会自动退出)
    Docker的守护态运行:让docker容器在后台以守护态形式运行,可以添加-d来实现。守护式容器主要和交互式容器来区别,守护式容器没有交互式会话,适合运行应用程序和服务。
    如:sudo docker run --name aofo -d ubuntu:14.04 /bin/sh -c “while true; do echo world; sleep 1; done” 该命令让容器在后台运行,使用一个while循环,该循环会一直打印hello world,直到容器或其进程停止运行。守护式容器不会返回shell会话,只返回一个容器ID。
    获取守护式容器的输出信息:通过docker logs命令。
    终止容器:可以使用docker stop来终止一个运行中的容器
    命令格式为:docker stop [t] -- time [=10],它会首先向容器发送SIGTERM信号,等待一段时间后,再发送SIGKILL信号终止容器。
    注:docker kill命令会直接发送SIGKILL信号来强行终止容器。
    查看终止状态容器的ID信息: docker ps -a -q | docker start重新启动容器 | docker restart 终止容器在重新启动。
     
    进入容器:在容器通过 -d 进入守护模式时,容器启动后会进入后台,用户无法看到容器中的信息。如果需要进入容器进行操作,可以使用如下方法,包括使用docker attach命令、docker exec命令或nsenter工具。
    使用attach时,如果有多个端口连接到同一个容器,那么当某一个窗口因命令阻塞时,其他的窗口也将无法继续操作。
    nsenter工具在util-linux包内包含,如果系统中没有该命令,那么需要自己从源码安装。
    如:$ cd /tmp; curl http://www.kernel.org/pub/linux/util-linux/v2.24/util-linux-2.24.tar.gz | tar -zxf-; cd util-linux-2.24;
      $ ./configure --without-ncurses
    $ make nsenter && sudo cp nsenter /usr/local/bin
    注:使用nsenter工具连接到容器时,需要找到容器进程的PID
    PID=$(docker inspect --format “{{ .State.Pid }}” <constainer>)
    连接到PID:$ nsenter --target  $PID --mount --uts --ipc --net --pid
     
    删除容器:命令格式 docker rm [options] CONTAINER [CONTAINER...]
    Options: -f强行终止并删除容器;-l删除容器的连接,但保留容器;-v删除容器挂载的数据卷
    导出容器:docker export CONTAINER(可以将容器导出到tar文件中)
    导入容器:docker import
    如:$ cat  ...tar | sudo docker import  -NAME:TAG
     
     
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值