1.安装 virtualbox 与 vagrant
官网直接下载安装包,注意 virtualbox 要使用 5.1 版本,vagrant 使用最新版本。
2.下载 vagrant box
vagrant box add [name] [镜像]
vagrant box add ubuntu ubuntu/xenial64
下载速度会很慢,建议复制链接到迅雷里面下载。
3.使用 vagrant-winnfsd 插件提升共享目录性能
vagrant plugin install vagrant-winnfsd
4.初始化镜像
选择目录,执行 vagrant init ubuntu
之后会生成一个 Vagrantfile 文件。
打开 Vagrantfile 文件,修改代码:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu"
# config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "private_network", ip: "192.168.33.10"
# 禁用原有的默认的共享目录
config.vm.synced_folder '.', '/vagrant', disabled: true
config.vm.synced_folder "./code", "/www", type: "nfs"
end
修改完之后在当前目录下创建 code 共享文件夹,此文件夹将映射到 ubuntu 的 /www 目录。
5.开始运行
vagrant up
6.进入 ubuntu 系统
vagrant ssh
或者使用 xshell 登录,127.0.0.1:2222
。如果需要秘钥登录则使用 .vagrant\machines\default\virtualbox
这个目录下的 private_key
。之后想通过用户名和密码登录的话,修改 sshd_config
, sudo vi /etc/ssh/sshd_config
更改 PasswordAuthentication
为 yes
,之后就可以通过用户名和密码登录了,用户名和密码都是 vagrant
6. 安装 docker ce
sudo apt-get update
添加软件源的 GPG 密钥
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add
向 source.list 中添加 Docker 软件源
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
安装 docker
sudo apt-get update
sudo apt-get install docker-ce
启动 docker
sudo systemctl restart docker
将当前用户加入 docker 用户组
sudo usermod -aG docker $USE
之后退出当前终端,重新登录。
7.配置镜像加速
sudo vi /etc/docker/daemon.json
{
"registry-mirrors": [
"https://registry.docker-cn.com"
]
}
之后重启系统
sudo systemctl daemon-reload
sudo systemctl restart docker
8.检测 docker 是否运行正确
docker run hello-world
9.安装 docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
10.构建环境
docker-compose.yml 文件
version: '3'
services:
### Applications Code Container #############################
# web:
# image: debian:jessie
# volumes:
# - ./www:/var/www
### PHP-FPM Container #######################################
php-fpm:
build:
context: ./php
container_name: php
volumes:
- ../www:/app
expose:
- "9000"
### Nginx Server Container ##################################
nginx:
build:
context: ./nginx
container_name: nginx
volumes:
- ../www:/app
ports:
- "80:80"
- "443:443"
depends_on:
- php-fpm
配置好了之后执行 docker-compose up
自动构建并启动
( mysql 使用的是本地PC机器上的 )
11.测试是否成功
由于使用的是 vagrant ,那么访问 http://192.168.33.10/
这个 ip 是之前 在Vagrantfile 中配置的私有 ip。