我尝试使用vagrant设置本地VPS,并在此虚拟机中安装了docker并进行了设置。
这是我的Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "xenial64"
config.vm.network :forwarded_port, guest: 80, host: 8080
config.vm.provision "docker"
config.vm.provision :shell, :path => "install.sh"
config.vm.synced_folder ".", "/vagrant", :mount_options => ["dmode=777", "fmode=777"]
config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
vb.cpus = 2
vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]
end
end
并且在我使用此文件后,我将其插入其中然后安装docker-compose 并运行我的docker-compose.yml(here is my lemp stack source) 一切正常我用index.php测试过,我甚至运行了opencart,但它确实有用。
但是,问题在于:我无法像往常一样通过使用此crendential来连接mySql WorkBench或SqlYog中的mysql数据库:
SSH Tunnel :
SSH Host Address : 127.0.0.1
Username : vagrant
SSH Port : 2222
Password : vagrant
MySQL :
Mysql Host Address : localhost
Port : 3306
username : root
password : root
我尝试将mySql主机地址更改为172.18.0.2,这是docker中的mysql容器的ip地址,当docker inspect <container id>
执行时不起作用。
这是我的docker-compose.yml:
version: "2"
services:
nginx:
image: nginx
restart: always
ports:
- 8080:80
volumes:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
- ./nginx/log:/var/log/nginx
volumes_from:
- fpm
depends_on:
- fpm
- db
links:
- db
fpm:
build: ./fpm
restart: always
volumes:
- ./app/public:/var/app/public
- ./app/storage:/var/app/storage
links:
- db
db:
image: mysql:5.7
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=application
restart: always
有人可以帮帮我吗?谢谢
答案 0 :(得分:0)
现在我又回答了我自己的问题.. 出于发展的目的,似乎我不需要ssh into vagrant,
让我说我在docker-compose.yml中有这个设置:
dl_db:
image: mysql:5.7
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=oemjih
restart: always
然后我把这行放在我的vagrantfile中
config.vm.network :forwarded_port, guest: 3306, host: 3306
从我的sqlyog面板我只是通过带有port:3306
的tcp / ip访问数据库,因为我在没有ssh的情况下映射到我的vagrantfile中的主机端口:
MySql Host Address: localhost
username : root
password : root
port : 3306