Docker 容器管理

单一容器管理

容器的标识符

每个容器被创建后都会分配一个CONTAINER_ID作为容器的唯一标识符,后续的启动、停止等操作都通过CONTAINER_ID来完成的。

CONTAINER_ID很难记忆,在创建容器时,可以用--name参数给容器起一个名字。用名字代替CONTAINER_ID对容器进行操作。

  docker ps     #查询CONTAINER_ID的简略形式

  docker stop container_id/container_name  #停止容器

  docker start container_id/container_name  #启动容器

查询容器信息

  docker inspect  #查询容器的所有基本信息,包括运行状况、存储位置等

docker logs  #查询日志

   docker stats # 查询容器占用的系统资源

容器内部的命令

  经常有登入Docker容器内部执行命令的需求,可以在容器中启动sshd服务来响应用户登录,但sshd方式存在进程开销和增加被攻击

的风险,同时违反Docker所倡导的“一个容器一个进程”的原则。

Docer提供了原生的方式登入容器 docker exec:

  docker exec container_name 容器内执行的命令

可以加上“-it”参数,相当于以root身份登入容器内可以连续执行命令,执行完成后通过“exit”或者“ctrl +d”退出。

多容器管理

  Docker倡导的理念是“一个容器一个进程”,假如一个服务由多个进程组成,就要创建多个容器组成一个系统,相互分工和配合来对外提供完整服务。

在通一台主机下,docker run命令提供“--link”选项创建容器之间的互连。但有一个前提条件,使用“--link containerA”创建容器B时,容器A必须已经穿件并且启动运行,

所以容器启动是按顺序的。

容器编排工具 Docker Compose

  Docker提供一个容器编排工具——Docker Compose,它允许用户在一个模板(YAML格式)中定义一组相关的应用容器,这组容器会根据配置模板中的

“--link”等参数,对启动的优先级自动排序,简单执行一条“docker-compose up”,就可以把同一个服务中的多个容器一次创建和启动。

docker-compose.yml文件:

wordpress:

  image:wordpress

  links:

    -db:mysql

    ports:

    - 8080:80

db:

  image:mariandb

  environment :

    MYSQL_ROOT_PASSWORD:example

这个配置文件创建了两个容器wordpress 和 db 使用image指定镜像,links、ports、environment分别对应docker run中的“--links”(容器互联)、“-p”(端口映射)

和“-e”(环境变量设置)。然后通过docker-compose up 命令来创建和启动wordpress服务。

  docker-compose up   #启动和创建容器

  docker-compose start #启动命令

  docker-compose stop #停止命令

  docker rm container_id #删除容器

默认的配置文件是docker-compost.yml, 可以通过“-f”选项指定配置文件。

  docker-compose -f XXX.yml ps #查询所有容器状态

  docker-compose -f XXX.yml stop #停止项目

  docker-compost -f XXX.yml  start #启动项目

  docker-compost -f XXX.yml  down #删除项目

上一篇:superMap Object 属性查看的一点代码


下一篇:服务器上的Git