Docker 倡导的理念是: “一个容器一个进程”

容器管理

dockerID 是由128位组成, 前16位保证唯一. docker ps --no-trunc

容器运行

基本命令: docker run

docker run --name db --env MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mariadb

查看容器

基本命令: docker ps

  1. 查看所有的容器: docker ps -a
  2. 查看已经停止的容器: docker ps -a

查看容器日志

  1. 查看日志: docker logs ID
  2. 动态查看日志: docker logs -f ID

容器删除

  1. 删除容器: docker rm ID
  2. 强制删除容器: docker rm -f ID

查看容器系统资源信息

  1. docker stats ID
  2. docker top ID

容器内部命令

一个容器一个进程

docker exec + 容器名 + 容器内部执行命令

  1. 执行内部命令: docker exec 5ad ps aux (5ad是ID的前三位)
  2. 进入容器内:docker exec -it 5ad /bin/bash

多容器管理

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

通过 --link container 命令互联容器.

1
2
docker run --name mdb --env MYSQL_ROOT_PASSWORD=qweqwe -d mariadb 
docker run --name my_wordpress --link mdb:mysql -p 8080:80 -d wordpress

Docker Compose

Docker 提供一个容器编排工具. Docker Compose. 它允许用户在一个模板(YAML格式)中定义一组相关联的应用容器, 这组容器会根据配置模板中的--link等参数, 对启动的优先级自动排序,简单执行一条docker-compose up, 就可以把同一个服务中的多个容器依次创建和启动.

docker-compose 安装

通过修改1.25.0版本号,使用最新版本

1
2
3
curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -h

安装 wordpress 案例

1
2
3
mkdir ~/docker-wordpress/
cd ~/docker-wordpress
touch docker-compose.yml

docker-compose.yml 文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
wordpress:
        image: wordpress
        links:
                - mydb:mysql
        ports:
                - 8080:80
mydb:
        image: mariadb
        environment:
                MYSQL_ROOT_PASSWORD: qweqwe
  1. wordpress, mydb 是节点名称
  2. links 是互联哪个节点.支持多个
  3. image 指定镜像
  4. ports 与宿主机映射端口.(8080是宿主机的, 80是docker里的.)
  5. environment 设置环境变量

启动/停止

必须在 docker-compose.yml 文件的当前目录下.

  1. docker-compose up 非后台运行
  2. docker-compose up -d 后台运行
  3. docker-compose stop 停止
  4. docker-compose start 启动
  5. docker-compose -f a.yml up 指定a.yml文件启动(默认为 docker-compose.yml)

操作指定文件(yml)的容器

  1. 状态 docker-compose -f ~/docker-wordpress/a.yml ps
  2. 停止 docker-compose -f ~/docker-wordpress/a.yml stop
  3. 启动 docker-compose -f ~/docker-wordpress/a.yml start