使用docker来部署环境后,在本机上难免会在容器中做一些修改,安装软件或扩展等,想要继续在别的主机上使用相同的环境,就要把自己修改后的容器内容打包上传至docker hub,正好下一个项目要用到websocket,做个简单的镜像练手。
首先要准备docker hub账号,在https://hub.docker.com上注册(*注册页面有个机器人检测程序,需要科学上网,否则sing up是灰色的无法操作)。
注册成功之后点击Create Repository创建一个镜像库,填入基本信息即可。
在本地启动docker服务,拉取centos镜像安装workman服务。
#docker pull centos
#docker run -i -t -d -p 2120:2120 -p 2121:2121 -p 2123:2123 --name my-workerman centos
#docker exec -it my-workerman
workerman默认使用的通讯端口为2120,2121,2123,需要开启这几个端口。进入伪终端后需安装workerman运行必备的php环境。
#yum install libevent-devel -y
#pecl install event
*注意提示:Include libevent OpenSSL support [yes] : 时输入no回车,其它直接敲回车就行
#echo extension=event.so > /etc/php.d/30-event.ini
环境检测:
curl -Ss http://www.workerman.net/check.php | php
检测结果都为OK即可下载运行workerman框架
#yum install wget
#yum install -y unzip zip
#wget http://www.workerman.net/download/senderzip
#unzip senderzip
解压后得到web-msg-sender目录,进入该目录运行start.php即可启动服务
#cd web-msg-sender
#php start.php start -d
在浏览器运行IP:2123可以检测web消息发送和接收。运行成功后退出容器,使用docker commit指令来提交我们修改的容器副本创建为一个镜像。
#docker commit -m="has update" -a="me" e218edb10161 lccccccc/php-workerman
#docker images
-m表示镜像描述,-a是维护者信息,最后是容器ID和要保存的镜像名称。
登陆docker,输入账号密码登陆,之后提交我们创建的镜像到docker hub
#docker login
#docker push lccccccc/php-workerman
等待上传完成后,即可在docker hub上看到自己的提交镜像。docker search命令可以直接查找到此镜像。
*使用docker-compose加入该镜像后启动服务发现status一直为restarting而不是up,在配置中加入tty: true即可