背景
最近接到项目经理提出的一个新需求,我们项目中需要针对海康威视视频监控进行页面播放展示,需要将海康威视RTSP视频流进行转码然后在浏览器中进行播放,执行方案可参考Linux环境下使用flv.js + websokect播放RTSP视频流,由于项目是部署在Linux服务器上并使用K8s进行管理,所以需要使用到docker镜像,本文主要记录如何实现在docker中开启一个Centos7系统,如有不足还请大家指正。
制作Centos7镜像
- 拉去镜像
docker pull centos:7
- 查看镜像ID
docker images
- 创建容器
docker run --privileged -it -p 8080:80 -d 镜像ID /usr/sbin/init
# --privileged表示容器内的root拥有真正的root权限
# -d 镜像ID表示使用指定镜像ID创建容器
# /usr/sbin/init 表示启动容器后使用systemctl方法
- 查看容器
docker ps
- 安装软件
yum install net-tools #安装网络工具
yum -y install openssh-server #安装ssh连接工具
systemctl start sshd.service #启动ssh服务
systemctl enable sshd.service # 设置ssh服务自启
yum -y install firewalld # 安装防火墙
开启SSH连接
- 修改sshd配置
vim /etc/ssh/sshd_config
Port 22
ListenAddress 0.0.0.0
ListenAddress ::
permitrootlogin yes
UsePAM yes 改为 UsePAM no
GSSAPICleanupCredentials no改为GSSAPICleanupCredentials yes
去掉UsePrivilegeSeparation sandbox的注释并改为UsePrivilegeSeparation no
- 重启sshd
/usr/sbin/sshd -D
- 设置linux容器的密码
passwd root
- 提交镜像
docker ps #查看容器ID
docker commit #容器ID 新的镜像名称
例: docker commit bbc43340b24b centos7-ssh
docker stop 容器ID & docker rm 容器ID
- 启动新生成的镜像
docker run -itd --name centos7 --privileged -p 9988:22 centos7-ssh:latest init
- 使用ssh工具连接服务器
ssh root@宿主机(部署docker的服务器IP) -p 9988