《最详细的docker+php开发环境教程》(四) docker容器

image 文件生成的容器实例,本身也是一个文件,称为容器文件。也就是说,一旦容器生成,就会同时存在两个文件: image 文件和容器文件。

使用docker的过程差不多就是操作image和container的过程,他们大致关系如图:
《最详细的docker+php开发环境教程》(四) docker容器_第1张图片
其中dockerFile会另外再说。

查看容器

$ docker container ls [OPTIONS]

OPTIONS:
    -a: 查看所有容器,包括正在运行和已经停止的容器

注意:容器即使停止了,容器依然是存在的,如果修改了dockerFile文件,想要使新配置生效,需要将容器删除

删除容器

$ docker rm container_id

container_id: 可以使用docker ps查看

启动容器

$ docker run [OPTIONS] image

OPTIONS:
    1. --name=container_name: 指定启动后的容器名称
    2. -p: 绑定宿主机转发容器的端口
    3. -v: 宿主机与容器的文件映射
    4. -e: 环境变量
    5. -i: 以交互模式运行容器,通常与 -t 同时使用
    6. -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
    7. -d: 后台运行容器,并返回容器ID
    7. --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致
    8. link=连接名:容器名称 : 添加链接到另一个容器
    9. --expose=[]: 开放一个端口或一组端口

注意:
1. 如果容器中没有服务,即便使用了-d参数,启动后也会直接退出,所以容器必须有nginx、php-fpm这样的服务启动
2. 使用link参数可以使两个容器间使用link的值进行连接通信
示例:php-fpm容器和mysql容器

// 启动mysql容器,并将容器命名为mysql
docker run --name mysql -p 3306:3306 -v ~/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -itd develop/mysql

// 启动php-fpm容器,并将容器命名为php-fpm
docker run --name php-fpm -p 9000:9000 --link mysql:mysql -v ~/develop:/www --privileged=true -d develop/php

启动两个服务后,在连接mysql的时候,可以使用link的值,如下
$pdo = new PDO("mysql:host=mysql;port=3306;dbname=test", 'root', '123456');
在连接时,host可以不用ip,直接使用link指定的容器即可。

你可能感兴趣的:(【系统,服务器】)