Docker相关

Docker相关

安装docker

sudo apt-get update && sudo apt-get upgrade
curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh

Dockerfile构建命令

docker build . -t name:tag

pytorch相关

Dockfile

# 构建一个pytorch的镜像
# FROM pytorch/pytorch:2.0.1-cuda11.7-cudnn8-runtime
# FROM nvcr.io/nvidia/pytorch:22.06-py3
# FROM nvcr.io/nvidia/pytorch:23.05-py3
FROM pytorch/pytorch:2.0.1-cuda11.7-cudnn8-devel
RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
RUN sed -i 's/security.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list

RUN apt update
ARG DEBIAN_FRONTEND=noninteractive
RUN apt install -y openssh-server
# RUN apt-get install -y tzdata && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN apt install -y htop git iproute2 tmux

RUN pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/

RUN pip3 install 'lightning'
RUN pip3 install transformers 
RUN pip3 install numba

RUN echo "PermitRootLogin yes" >> /etc/ssh/sshd_config 
RUN apt install -y python3-opencv
RUN apt install -y nano
RUN export PATH="/opt/conda/bin:$PATH"
RUN conda init

ADD startup.sh /tmp
RUN chmod +x /tmp/startup.sh

WORKDIR /workspace

EXPOSE 6006
EXPOSE 8008
EXPOSE 22

ENV ROOT_PWD=123456
# ENV ENV_PATH="/data/venv"
# VOLUME [ "/data","/high_speed_data" ]

CMD /tmp/startup.sh

如何使用

# 构建容器
sudo docker build . -t rc_dl:1
启动
sudo docker run --privileged -it -d --name=ysr_work --gpus all \
--ipc host \
-p 1148:22 \
-e ROOT_PWD="a" \
-v /high_speed_data:/high_speed_data \
-v /data:/data \
ysr_torch2.0.1:1

RTMP加nginx服务器实现推流

Dockerfile(适用于树莓派)

git clone https://github.com/vallahaye/docker-nginx-rtmp/tree/master
ARG RTMP_VERSION="1.2.2"

FROM nginx:stable AS build-env
ARG RTMP_VERSION

WORKDIR /tmp

RUN export HTTP_PROXY="192.168.137.1:7890"
RUN export HTTPS_PROXY="192.168.137.1:7890"
RUN export FTP_PROXY="192.168.137.1:7890" 
RUN echo 'Acquire::http::proxy "http://192.168.137.1:7890/"; ' >> /etc/apt/apt.conf.d/proxy.conf
RUN echo 'Acquire::http::proxy "http://192.168.137.1:7890/"; ' >> /etc/apt/apt.conf.d/proxy.conf
RUN echo 'Acquire::http::proxy "http://192.168.137.1:7890/"; ' >> /etc/apt/apt.conf.d/proxy.conf


RUN set -x \
    \
    && apt-get update \
    && apt-get install --no-install-recommends --no-install-suggests -y wget \
    && wget 'https://hg.nginx.org/pkg-oss/raw-file/default/build_module.sh' \
    && chmod +x build_module.sh \
    && ./build_module.sh -v "${NGINX_VERSION}" -V "${RTMP_VERSION}" -y 'https://github.com/arut/nginx-rtmp-module.git'


FROM nginx:stable
ARG RTMP_VERSION
ARG OCI_IMAGE_CREATED_AT
RUN export HTTP_PROXY="192.168.137.1:7890"
RUN export HTTPS_PROXY="192.168.137.1:7890"
RUN export FTP_PROXY="192.168.137.1:7890" 
RUN echo 'Acquire::http::proxy "http://192.168.137.1:7890/"; ' >> /etc/apt/apt.conf.d/proxy.conf
RUN echo 'Acquire::http::proxy "http://192.168.137.1:7890/"; ' >> /etc/apt/apt.conf.d/proxy.conf
RUN echo 'Acquire::http::proxy "http://192.168.137.1:7890/"; ' >> /etc/apt/apt.conf.d/proxy.conf


LABEL org.opencontainers.image.created="${OCI_IMAGE_CREATED_AT}" \
      org.opencontainers.image.authors="Valentin Lahaye <valentin.lahaye@gmail.com>" \
      org.opencontainers.image.url="https://hub.docker.com/r/vallahaye/nginx-rtmp" \
      org.opencontainers.image.source="https://github.com/vallahaye/nginx-rtmp" \
      org.opencontainers.image.version="${NGINX_VERSION}+${RTMP_VERSION}" \
      org.opencontainers.image.licenses="BSD-2-Clause"

ENV RTMP_VERSION="${RTMP_VERSION}"

COPY --from=build-env /tmp/build-module-artifacts /tmp/build-module-artifacts

RUN set -x \
    \
    && apt-get install --no-install-recommends --no-install-suggests -y /tmp/build-module-artifacts/nginx-module-rtmp_*.deb \
    && rm -rf /tmp/build-module-artifacts

COPY nginx.conf /etc/nginx/nginx.conf
CMD ["nginx","-g","daemon off;"]

EXPOSE 1935


启动命令

docker run --privileged -it --name some-nginx -v nginx.conf:/etc/nginx/nginx.conf -d -p 1146:1935 rtmp:1

树莓派高效推流,超低延时

安装mjpg_streamer

sudo apt-get install libjpeg62-turbo-dev  #JPEG支持库
sudo apt-get install imagemagick
sudo apt-get install libv4l-dev   
sudo apt-get install cmake  #编译工具
sudo apt-get install git #用git下载软件

sudo git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental
sudo make
sudo make install
mjpg_streamer -i "/usr/local/lib/mjpg-streamer/input_uvc.so -d /dev/video0 -n -f 30 -r 1920x1080" -o "/usr/local/lib/mjpg-streamer/output_http.so -p 8080 -w /usr/local/share/mjpg-streamer/www"
1. 什么是Docker?为什么要使用DockerDocker是一种容器化技术,可以将应用程序打包成容器,使其能够在任何环境中运行,而不需要担心环境差异问题。Docker可以提高应用程序的可移植性、可伸缩性和安全性。 2. Docker和虚拟机的区别是什么? 虚拟机是一种完整的操作系统虚拟化技术,而Docker是一种应用程序级别的虚拟化技术。虚拟机需要模拟整个操作系统,包括内核、系统服务等,而Docker只需要模拟应用程序的运行环境。因此,Docker比虚拟机更轻量级、更快速、更节省资源。 3. Docker的三个基本组件是什么? Docker的三个基本组件是Docker Engine、Docker Hub和Docker CLI。Docker Engine是Docker的核心组件,负责管理Docker容器镜像Docker Hub是Docker的公共镜像仓库,用户可以在其中分享和下载镜像Docker CLI是Docker的命令行接口,用户可以使用Docker CLI来创建、管理和运行Docker容器。 4. Docker镜像容器是什么? Docker镜像是一个静态的文件,包含了应用程序运行所需的所有文件和依赖项。Docker容器是一个运行中的实例,它基于Docker镜像创建,包含了应用程序的运行环境和状态。 5. 如何创建Docker镜像? 创建Docker镜像的基本步骤是:创建一个Dockerfile文件,定义Docker镜像的构建过程;使用docker build命令构建Docker镜像;使用docker push将Docker镜像推送到Docker Hub镜像仓库中。 6. 如何创建Docker容器? 创建Docker容器的基本步骤是:使用docker run命令创建Docker容器,并指定所需的Docker镜像容器的名称;使用docker start、docker stop、docker restart等命令管理Docker容器的生命周期。 7. 如何保证Docker容器的安全性? 保证Docker容器的安全性可以从以下几个方面入手:使用最小化的Docker镜像和应用程序;限制Docker容器的权限;监控Docker容器的运行状态;及时更新Docker镜像和应用程序等。 8. 如何扩展Docker容器? 扩展Docker容器可以从以下几个方面入手:使用Docker Swarm或Kubernetes等容器编排工具管理多个Docker容器;使用Docker Compose将多个Docker容器组合成一个应用程序;使用Docker网络使多个Docker容器之间进行通信。 9. 如何在Docker容器中运行多个服务? 在Docker容器中运行多个服务可以使用以下几种方式:使用Docker Compose将多个Docker容器组合成一个应用程序;使用Docker网络将多个Docker容器连接在一起;在Docker容器中运行多个进程,使用supervisord等工具管理进程。 10. 如何实现Docker容器的持久化存储? 实现Docker容器的持久化存储可以从以下几个方面入手:使用Docker数据卷将数据存储在主机上;使用Docker网络将数据存储在其他Docker容器中;使用第三方存储系统,如NFS、GlusterFS等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值