首页 PHP小记正文

docker的基础命令

admin PHP小记 2019-05-16 167 0

dcoker 

一次封装 哪里都可以运行

### 镜像

    docker images  // 查看当前有些什么images  

    docker rmi <image id>  删除images,通过image的id来指定删除谁  

    docker rmi $(docker images -q) //要删除全部image的话

    

 - 拉取镜像  

 

        $ docker pull [OPTIONS] NAME[:TAG]

        

        OPTIONS

            1. -a                      :拉取所有 tagged 镜像

            2. --disable-content-trust :忽略镜像的校验,默认开启

        NAME[:TAG]

            要拉取的镜像名称,tag可省略,省略则默认为latest

### 容器  

-  容器基础

        $ docker ps // 查看所有正在运行容器  

        $ docker stop containerId // containerId 是容器的ID  

        

        $ docker ps -a // 查看所有容器  

        $ docker ps -a -q // 查看所有容器ID  

    

        $ docker stop $(docker ps -a -q) //  stop停止所有容器  

        $ docker  rm $(docker ps -a -q) //   remove删除所有容器  

    

构建mysql 5.7容器

docker run --name mysql57 -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 mysql:5.7

构建PHP-fpm容器

         docker ru n --name php70 -p 9000:9000 --link mysql57:mysql \

        -v /Users/apple/data/wwwroot:/var/www/html \

        -v /Users/apple/data/service/php-fpm/www.conf:/usr/local/etc/php-fpm.d/www.conf \

        -v /Users/apple/data/service/php/php.ini:/usr/local/etc/php/php.ini -d php:7.0-fpm

### dockerFile

    FROM image_name

        指定镜像

    

    COPY <宿主机路径> <容器路径> 

        复制宿主机文件到容器中

    

    ADD <宿主机路径> <容器路径>  

        ADD命令和COPY命令很相似,但是ADD命令的<宿主机路径>可以直接使用url

    

    EXPOSE 端口号

        开放容器端口,该命令与docker run中的-p参数不一样,

        -p参数表示绑定宿主机与容器的端口,EXPOSE只是开放了容器的端口,在宿主机中访问时需要使用container_ip:port,

        而-p参数指定的端口,在宿主机中访问时可以直接使用127.0.0.1:port访问。

    

    RUN

        可以指定要在容器中执行的命令,可以使用该命令安装php扩展

### 项目架构

    workdir/

    ├── mysql/

    │   ├── data/           // mysql的数据存放目录

    │   ├── log/            // mysql的日志文件目录

    │   └── Dockerfile

    ├── nginx/

    │   ├── Dockerfile

    │   ├── log/            // nginx日志文件目录

    │   ├── nginx.conf      // nginx的配置文件

    │   └── sites-enabled       // nginx的虚拟站点配置

    │       ├── default.conf

    ├── php/

    │   ├── Dockerfile

    │   ├── log/            // php的日志文件目录

    │   ├── php-fpm.conf        // php-fpm配置文件

    │   ├── php.ini         // php配置文件

    └── redis/

        ├── data/                   // redis持久化后的数据存放目录

        ├── log/                    // redis的日志文件目录

        ├── redis.conf              // redis配置文件   

        └── Dockerfile

构建nginx 容器

docker run --name nginx -d -p 80:80 \

-v /Users/apple/data/app:/var/www/html:ro \

-v /Users/apple/data/service/nginx/logs:/var/log/nginx \

-v /Users/apple/data/service/nginx/default.conf:/etc/nginx/conf.d/default.conf  -d nginx

进入容器

docker exec -it mynginx /bin/bash 

--------

docker run -d --name php70 -p 9000:9000 --link mysql57:mysql \

-v /Users/apple/data/wwwroot:/var/www/html \

-v /Users/apple/data/service/php-fpm/www.conf:/usr/local/etc/php-fpm.d/www.conf \

-v /Users/apple/data/service/php/php.ini:/usr/local/etc/php/php.ini -d php:7.0-fpm

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论