美文网首页
docker 系列(四) - 容器

docker 系列(四) - 容器

作者: 黄二的NPE | 来源:发表于2018-10-21 15:59 被阅读6次

再次强调:可以运行镜像来得到一个容器。

运行容器

docker run [option] image-name [command][arg...]

  • -d : 以后台运行的形式存在, 并返回容器id
  • -i : 以交互的模式运行容器,通常与 -t 配合使用
  • -t :返回一个伪终端,通常与-i配合使用
  • -p : 端口映射

查看容器

docker ps

  • 查看正在运行的docker容器
  • -a : 查看所有容器,包括关闭(exited)
# CONTAINER ID 容器短id
# IMAGE 镜像名
# COMMAND 容器启动命令
# CREATED 容器创建时间
# STATUS 容器状态和时间。UP:上线;exited:下线。
# PORTS 端口信息
# NAMES 容器名 可以通过启动时用 --name 来指定
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
fb346c01f574        centos              "/bin/bash"              22 minutes ago      Up 21 minutes                                hopeful_clarke

进入容器

  • docker attach
  • docker exec -it image-name bash|sh

二者的区别

  1. attach进入容器后,exit退出容器并且把容器关闭掉
  2. exec进入容器后,exit退出容器不会把容器关闭

容器操作

  • docker stop 关闭容器(相当于kill),可以在docker ps -a找到关闭后的容器(exited)
  • docker start 启动容器,可以重启exited状态的容器
  • docker restart 重启容器

容器持久化

  • docker commit container-id image-name
    -- 将某个容器保存为镜像

  • docker export container-id > busybox-test.tar
    -- 将某个容器保存为文件

  • cat busybox-test.tar| docker import - busybox-test:latest
    -- 将导出的容器文件保存为某个镜像

  • docker save image-name > file
    -- 保存某个镜像

  • docker load < file
    -- 导入某个镜像

容器底层原理

  • docker容器的本质是Linux中的进程。
  • docker利用cgroup技术来限制每个进程的资源(即每个容器的资源),像--cpu-share来限制cpu的权重; -m --memory-swap来限制内存。
  • docker利用namespace来实现资源隔离。让每个容器都以为拥有自己的文件系统,拥有自己的网卡(比如有自己的ip)。Linux 使用了六种 namespace,分别对应六种资源:Mount、UTS、IPC、PID、Network 和 User。

相关文章

网友评论

      本文标题:docker 系列(四) - 容器

      本文链接:https://www.haomeiwen.com/subject/tndbzftx.html