docker的实际应用 2019-09-23 程序之旅 2 条评论 2913 次阅读 ## docker的实际应用 [TOC] 时间过去的挺快,上一篇docker的文章还是docker的自定义创建,现在就是真正的应用在生活当中。 最近换了服务器,走的是cn2的路线,所以在速度和响应方面,服务器比过去有很大的提升,在这服务器上搭建ssr是一个很好的体验。享受到速度和响应的愉快之后,就觉得资源上有所充裕,想对其进行分享。于是,我就分享给了一个朋友,共同用了两天后,发现其服务器端口被封,初次推测是访问了不该访问的网站,但是过了几天后,换了端口后还是有问题,后来推测是不能共同的使用一个端口的问题,于是我决定把使用的端口分成多个,一个人一个端口。 启动多个ssr程序,绑定不同的端口,实现起来有多种方法,可以写脚本,挂nohup或者弄个虚拟机,但是最近使用的docker比较多,所以想看看docker是否有现成的容器,一查果然,`malaohu/ssr-with-net-speeder`,下载量还挺高,这里就简单的实现用docker来管理多个ssr服务。 ### 需求分析 使用docker服务启动多个ssr容器,每个容器独占一个端口,并配置容器内ssr的密码和协议加密等信息。 ### 需求实现 #### 开发前准备 ##### 安装好docker vps使用的系统是centos7,首先下载docker ```shell wget https://download.docker.com/linux/centos/docker-ce.repo mv docker-ce.repo /etc/yum.repos.d yum install -y docker-ce ``` 在[docker hub](https://hub.docker.com/_/centos?tab=tags)或命令查找ssr的docker容器,如果觉得我找的容器不适用,可以自行查找 ```shell docker search malaohu/ssr-with-net-speeder # ssr 的镜像,如果带有official字样的,说明是官网镜像 docker pull malaohu/ssr-with-net-speeder # 下载镜像 ``` ##### 启动docker程序 在容器的介绍中,已经给出启动方式,[传送门](https://hub.docker.com/r/malaohu/ssr-with-net-speeder) ```shell docker run -d --name ssr-with-net-speeder -p 8989:8989 malaohu/ssr-with-net-speeder -s 0.0.0.0 -p 8989 -k RUYO.net -m rc4-md5 -o http_simple -O auth_sha1 ``` 启动的容器名称为ssr-with-net-speeder,映射的端口是8989,启动的一些参数表达的意思是 - -k:密码是 RUYO.net - -m:加密方式是 rc4-md5 - -o:混淆插件 http_simple - -O:传输协议auth_sha1 查看启动的容器,你会发现多出一列参数,之后就是运行ssr容器,并开发端口 ``` docker ps -a # docker ps # 运行着的容器 docker start ssr-with-net-speeder # 运行容器 # 添加80端口的访问权限,这里添加后永久生效 firewall-cmd --zone=public --add-port=8989/tcp --permanent firewall-cmd --reload # 查看80端口访问权限情况 firewall-cmd --zone=public --query-port=8989/tcp ``` 剩下的就是重复步骤,启动多个ssr容器,以备使用 ---- ### 2019年10月24日 因为每个服务器的内核不同,可能下载的docker镜像不适配,这里提供一个方法来判断当前系统对镜像是否适配 ``` docker run --rm mplatform/mquery [镜像全称] # docker run --rm mplatform/mquery hypriot/rpi-mysql Image: hypriot/rpi-mysql * Manifest List: Yes * Supported platforms: - linux/arm/v6 # uname -a Linux localhost 4.19.72-v7.1.el7 #1 SMP Tue Sep 10 19:58:58 UTC 2019 armv7l armv7l armv7l GNU/Linux ``` > 如果查看支持的平台(Supported platforms),上边的是支持arm v6内核的mysql数据库镜像,说明我的树莓派是能适配这个mysql镜像的 --- ### 2019年12月7日 如果想修改docker里的配置文件,一般可以又三种方式 1. -v 挂在,缺点是在容器运行之前就得配置好 2. bash进入容器后使用vi/vim/nano进行修改,缺点是容器中没有包含编辑工具,得下载 3. 使用 docker cp 拷贝覆盖 这里简答的说说docker cp的方式进行配置文件的修改 ``` docker cp [容器名]:[容器内的文件地址] [宿主机的路径] ``` 这里的容器地址不能使用`tab`键补全,所以得使用`docker exec -it [容器] bash`进入找到需要拷贝的路径。 同样的,覆盖容器文件就是文件地址调过来,替换文件后记得重新启动容器 ``` docker cp [宿主机的路径] [容器名]:[容器内的文件地址] docker restart [容器名] ``` 打赏: 微信, 支付宝 标签: docker, ssr 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
高产似母猪啊
猜想你分享的朋友肯定是一个很帅的人