本地开发环境是影响工做效率最重要的因素(还有一个是IDE,之后有时间会专门写这个)php
通常来讲有如下几种方案能够选择node
我目前用的方案是mysql
centos7 官方镜像 里面安装了 nginx php nodelinux
mysql 官方镜像nginx
redis 官方镜像redis
这样一共须要运行三个容器,数据都-v 到本地磁盘,容器干掉了数据也不丢失。sql
搜索镜像docker
$ docker search xxx
windows
若是出现 connection refused 能够试试重启dockercentos
下载镜像
$ docker pull xxx
删除镜像
$ docker rmi xxx
本地容器保存快照 生成镜像压缩文件
$ docker export -o dev-latest.tar 7e4b0
导入镜像
$
保存镜像
$ docker save -o redis-latest.tar 9813
容器导入 是将当前容器 变成一个新的镜像
镜像导入 是复制的过程
save 保存镜像全部的信息-包含历史
export 只导出当前的信息
查看当前运行的容器
$ docker ps
$ docker ps -a
$ docker stats
$ docker top
查看当前docker版本
$ docker info
运行容器
$ docker run -d [-p 主机端口:容器端口] --name [容器名自定义] [-v 主机/目录:容器/目录] [镜像名]
例如
centos
$ docker run -d -p 80:80 --name dev -v D:/docker/dev/www:/home/www centos
redis$ docker run -d -p 6379:6379 --name dev-redis -v D:/docker/redis/data:/data redis
mysql
$ docker run --name dev-mysql -v D:/docker/mysql:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=111111 -d mysql
中止 开启 重启
$ docker stop
$ docker start
$ docker restart
删除容器
$ docker rm
若是有本身的仓库能够
$ docker login -u 用户名 -p 密码 仓库地址
进入容器
$ docker exec -it [容器名] /bin/bash
若是碰到开机报错:
Docker command did not complete within the allowed timeout. Output:
多是windows 防火墙问题
在防火墙里放开下面这俩exeC:\Program Files\Docker\Docker\Docker for Windows.exe
C:\Program Files\Docker\Docker\DockerCli.exe
PS 若是发现容器里面挂载的目录不见了
可是执行 docker inspect 发现这个配置实际上是有的
那么 多是挂载的主机磁盘没有写权限 改完后重启试试
默承认以用内网IP通讯 网段是 172.17.0.1...
能够经过下面的命令查看容器IP
$ docker inspect --format='{{.NetworkSettings.IPAddress}}' CONTAINER_ID
这里注意 容器的IP是根据启动顺序来的,不是一直固定的,因此启动的时候最好有必定顺序,避免老去改配置的麻烦