镜像:类比JAVA中的一个类

容器:类比java new出的一个对象

运行容器

  1. docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  2. -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
  3. -d: 后台运行容器,并返回容器ID
  4. -i: 以交互模式运行容器,通常与 -t 同时使用;
  5. -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  6. --name="nginx-lb": 为容器指定一个名称;
  7. --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
  8. --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
  9. -h "mars": 指定容器的hostname
  10. -e username="ritchie": 设置环境变量;
  11. --env-file=[]: 从指定文件读入环境变量;
  12. --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
  13. -m :设置容器使用内存最大值;
  14. --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
  15. --link=[]: 添加链接到另一个容器;
  16. --expose=[]: 开放一个端口或一组端口;

启动一个临时sh环境并进入(rm参数为退出后销毁)

docker run -it —rm busybox /bin/sh

启动一个centos系统并放置后台(若镜像不存在会自动下载)

docker run -dit —name centos7 centos:7 /bin/bash

获取容器Id

docker ps -a

进入容器,创建新的虚拟终端(执行exit不会关闭容器)

docker exec -it centos7 /bin/bash

进入容器,进入原有虚拟终端(执行exit将关闭容器)

docker attach centos7

启动一个centos系统在后台保持工作

docker run -d —name centos7 centos:7 /bin/sh -c “while true; do echo hello world; sleep 10;done” !!! 若使用参数 -dit 会创建虚拟终端,导致通过attach进入时无法exit退出

进入容器,本身没有虚拟终端,只能查看输出(ctrl+c退出后容器不关闭)

docker attach centos7

进入容器,创建新的虚拟终端(exit后本终端关闭)

docker exec -it centos7 /bin/bash

启动一个centos系统并进入

执行exit将关闭容器,容器还在,可再次启动

docker run -it —name centos7 centos:7 /bin/bash

执行exit将关闭,且销毁容器,容器不再存在(此时name没有实际意义)

docker run -it —rm —name centos7 centos:7 /bin/bash

Ctrl+P+Q

当前认知:2019/04/30,暂未查询到进入指定tty方式
退出但不关闭当前终端,目前理解配合docker attach使用
若在exec中使用将会保留终端,且后期无法进入该终端