本地開發環境是影響工做效率最重要的因素(還有一個是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是根據啓動順序來的,不是一直固定的,因此啓動的時候最好有必定順序,避免老去改配置的麻煩