进入到dockerfile所在目录
docker build -t lnmp .
lnmp 是我想要的名称
开始进行
Step 1/6 : FROM ubuntu:16.04
16.04: Pulling from library/ubuntu
660c48dd555d: Downloading 28.51MB/47.76MB
4c7380416e78: Download complete
421e436b5f80: Download complete
660c48dd555d: Downloading 37.35MB/47.76MB
通过镜像生成容器
docker run -p 8082:80 -p 3308:3306 -p 23:22 -v /Users/wxx/PhpstormProjects/:/var/www/html/ --name lnmp -d 043571d93365
启动对应容器
docker start lnmp4
进入到对应的服务中
docker exec -it 478a7c3652d1 /bin/bash
查看对应的端口
docker port c759d09ba7f1
显示端口
22/tcp -> 0.0.0.0:32775
3306/tcp -> 0.0.0.0:32773
80/tcp -> 0.0.0.0:32774
8080/tcp -> 0.0.0.0:32772
在本地访问
0.0.0.0:32774或者127.0.0.1:32774
即可
这个32774端口是在未指定的情况下自动生成的,也可以在生成服务时自定义映射。
安装mysql
apt-get install mysql
安装mysql 客户端
apt-get install mysql-client
安装相关
apt-get install libmysqlclient-dev
通过docker port c759d09ba7f1 查看对应的3306端口
连接mysql会报错
Lost connection to MySQL server at 'reading initial communication packet', system error: 0
这是因为没有远程访问的权限
cd /etc/mysql/mysql.conf.d
编辑文件
vim mysqld.cnf
找到
bind-address = 127.0.0.1
在前面加上#
再重启mysql即可
service mysql restart
如果还不行
use mysql;
update user set host = '%' where user = 'root';
把当前ip放进去即可
把现有的环境生成一个镜像,前面是现有环境服务的id,后面是要生成的镜像名
docker commit 40264a9fb925 lnmp-nginx-php7
停止所有服务并删除
docker stop $(docker ps -q) & docker rm $(docker ps -aq)