Swoft+Docker的使用,PHP中高级程序员进阶
2018-12-07 10:32:51
曼妮
  • 访问次数: 2
  • 注册日期: 2018-12-07
  • 最后登录: 2018-12-07

这里就是利用swoft/swoft镜像运行一个名为swoft 的容器,然后-d表示后台运行,-p表示端口映射。 

为什么要端口映射?我们写的web代码大多数都是要请求80端口,但是这是虚拟机,实际上还是只有一个80端口,所以可以映射比如81端口,别人访问81端口的时候就会映射去访问docker里面的80端口,而不用去特意在代码里面改成81端口。


如果成功了:

docker images #查看所有镜像,会看到一个名为swoft/swoft的镜像。

docker ps -a #查看所有容器,可以看到一个名为swoft且正在运行的容器。

# 进入容器

docker exec -it swoft /bin/bash

#停止容器

docker stop swoft

#启动容器

docker start swoft

写代码

此时我们运行的是官方的代码,那我自己要写代码怎么操作? 

我们在某个地方git代码,比如/home/www/myswoft 

然后写代码,写完之后:


docker run -it --rm -p 81:80 -v /home/www/myswoft/  swoft/swoft  /bin/bash

#--rm表示我退出容器后就删掉容器。

然后就会进入容器里面

php bin/swoft start #将swoft运行起来


此时docker  ps -a会看到一个正在跑的容器,然后执行的就是你写代码。

exit #退出容器。

打包代码

功能什么的都写好了,想换个服务器运行,这个时候就可以直接打包:


docker build -t myswoft:v1  .

在/home/www/myswoft,也就是放代码的位置运行,swoft已经将dockerfile写好了,直接用。

注意最后的点不要掉了,表示当前目录。myswoft就是镜像的名字,v1就是版本号。


然后docker ps -a可以看到自己打包的镜像,如果不满意可以:

docker rmi ID  #根据ID删镜像


接下来可以试着运行一下试试:

docker run -p  81:80  --name myswoft myswoft:v1

不满意:

docker rm imagename  #根据名字删容器


都弄好了, 要发布或者下载下来:

docker save -o /home/myswoft myswoft:v1


在别的服务器导入镜像:

docker load < /home/myswoft


到了这里很多朋友觉得docker可能有点难以上手。某些方面的知识存在不足,没关系,我为大家准备了一套精品PHP中高级进阶学习教程,需要加微信:PHPopen888,还可加入微信群,分享docker,微服务,tp,laravel,swoole等教程,各种大牛都是3-8年PHP开发者,还有每天都有课程讲解,助你进阶中高级PHP程序员,增值涨薪!