whoru

学习、分享、交流、沉淀

  1. 查看容器名称或ID

    1
    2
    3
    ➜  docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Ports}}"
    CONTAINER ID NAMES STATUS PORTS
    33223943f76a lnmpa_mysql_1 Up 12 hours 0.0.0.0:3306->3306/tcp
  2. 导出

    1
    ➜  docker exec -it lnmpa_mysql_1 mysqldump -uroot -p123456 -P 3306 $DATABASE_NAME > $DATABASE_NAME_20181108_001.sql
  3. 导入

    1
    ➜  docker exec -i lnmpa_mysql_1 mysql -uroot -p123456 $DATABASE_NAME < $DATABASE_NAME_20181108_001.sql

    注意:这里与导出不同,需要将参数 -it 更换为 -i ,否则会报错:cannot enable tty mode on non tty input

环境

  • 基于 docker-compose 管理的 PHP 和 MySQL 服务
  • PHP 容器中的程序连接 MySQL 容器中的服务, 采用 PDO 形式

测试代码片段

1
2
3
4
5
6
<?php
try{
$pdo = new PDO('mysql:dbname=test;host=127.0.0.1;charset=utf8mb4;port=3306','root','root');
}catch(PDOException $pe){
die($pe->getMessage());
}

报错

1
SQLSTATE[HY000] [2002] Connection refused
阅读全文 »

1. 基本结构

Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。

在文件中,支持以 # 开头的注释行。

一般,Dockerfile 共包括四部分:

  • 基础镜像信息
  • 维护者信息
  • 镜像操作指令
  • 容器启动时执行指令
阅读全文 »