[RL] 使用 dockerfile 构建 atari 环境
强化学习需要 atari 环境,使用 dockerfile 快速构建。
下载 ROMS
wget http://www.atarimania.com/roms/Roms.rar
unrar -e Roms.rar
unzip ROMS.zip
创建文件夹 dockerbuild/
mkdir dockerbuild && cd dockerbuild
cp -r ../ROMS/ .
vim my.dockerfile
复制以下内容,ubuntu20.04+cu112+python3.8,大小为 10 G。
FROM nvidia/cuda:11.2.2-cudnn8-runtime-ubuntu20.04MAINTAINER Jiale HanSHELL ["/bin/bash","-c"]WORKDIR /rootADD ROMS/ ROMS/RUN apt update \&& apt install -y python3 python3-pip tmux \&& pip install opencv-python matplotlib gym atari-py ale-py \&& python3 -m atari_py.import_roms ROMS/ \&& apt install -y libgl1-mesa-glx \&& DEBIAN_FRONTEND=noninteractive apt install -y libglib2.0-dev \&& apt clean
或者下面这个,ubuntu18.04+cu102+python3.7+virtualenv+pytorch1.82,大小为 2 G。
FROM nvidia/cuda:10.0-cudnn7-runtime-ubuntu18.04MAINTAINER Jiale HanSHELL ["/bin/bash", "-c"]WORKDIR /root/ENV LANG C.UTF-8RUN apt update && \# install python3.7apt install -y software-properties-common && \add-apt-repository -y ppa:deadsnakes/ppa && \apt install -y python3.7 python3.7-distutils python3.7-dev && \apt install -y vim tmux wget && \# install virtualenv & virtualenvwrapperwget https://bootstrap.pypa.io/get-pip.py && \python3.7 get-pip.py && \pip install virtualenv virtualenvwrapper && \sed -i 's/which python/which python3.7/g' `which virtualenvwrapper.sh` && \echo -e "\n# virtualenvwrapper" >> .bashrc && \echo "export WORKON_HOME=/root/.virtualenvs" >> .bashrc && \echo "export VIRTUALENVWRAPPER_VIRTUALENV=`which virtualenv`" >> .bashrc && \echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.7" >> .bashrc && \echo "source `which virtualenvwrapper.sh`" >> .bashrc && \apt clean && \rm get-pip.pyCOPY ROMS/ /root/ROMS/RUN source `which virtualenvwrapper.sh` && \mkvirtualenv py37 && \workon py37 && \pip install opencv-python matplotlib ipython && \pip install gym ale-py && \ale-import-roms ROMS/ && \deactivate && \apt install -y libgl1-mesa-glx libglib2.0-dev && \apt clean && \rm -rf ROMS/COPY .oh-my-zsh/ /root/.oh-my-zsh/RUN apt install -y zsh && \cp .oh-my-zsh/templates/zshrc.zsh-template .zshrc && \sed -i 's/plugins=(git)/plugins=(git zsh-autosuggestions zsh-syntax-highlighting)/g' .zshrc && \echo -e "\n# virtualenvwrapper" >> .zshrc && \echo "export WORKON_HOME=/root/.virtualenvs" >> .zshrc && \echo "export VIRTUALENVWRAPPER_VIRTUALENV=`which virtualenv`" >> .zshrc && \echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.7" >> .zshrc && \echo "source `which virtualenvwrapper.sh`" >> .zshrc && \chsh -s $(which zsh) && \apt cleanCOPY id_rsa.pub /root/.ssh/id_rsa.pubRUN apt install -y openssh-server && \cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys && \chmod 600 /root/.ssh/authorized_keys && \sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/g' \/etc/ssh/sshd_config && \sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' \/etc/ssh/sshd_config && \sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin prohibit-password/g' \/etc/ssh/sshd_config && \apt cleanEXPOSE 22COPY init.sh /root/init.shENTRYPOINT ["/bin/zsh", "init.sh"]
使用镜像运行容器后,
启动 ssh 服务
service ssh restart
安装 pytorch1.8.2
pip install torch==1.8.2+cu102 torchvision==0.9.2+cu102 \-f https://download.pytorch.org/whl/lts/1.8/torch_lts.html
pip install 'ray[rllib]' tensorboard==1.15
或者把 nvidia/cuda:10.2
改成 nvidia/cuda:10.0
,使用镜像运行容器后,安装 tensorflow1.15
pip install tensorflow-gpu==1.15
pip install 'ray[rllib]'
如果要运行框架
export HOROVOD_GPU_OPERATIONS=NCCL
apt install git cmake g++
pip install influxdb psutil pyzmq pyarrow horovod
conda 镜像
FROM nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04MAINTAINER Jiale HanSHELL ["/bin/bash","-c"]WORKDIR /rootRUN apt update \&& apt install -y vim cmake tmux wget \&& wget https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-Linux-x86_64.sh \&& echo -e "\nexport export HOROVOD_GPU_OPERATIONS=NCCL" >> .bashrc \&& apt install -y libgl1-mesa-glx libglib2.0-dev git\&& apt clean \
构建镜像
cd dockerbuild/
docker build -t nvidia/cuda:cu100-ubu18-rl-zsh -f tf1.dockerfile .
从镜像运行容器
docker run -it -v /data2/hanjl:/root/code/ \-p 0.0.0.0:2200:22 -p 0.0.0.8000:80 \--gpus '"device=1,2"' --name hjl_test \nvidia/cuda:cu100-ubu18-rl-zsh /bin/zsh
[RL] 使用 dockerfile 构建 atari 环境相关推荐
- Dockerfile 构建python环境
Dockerfile 构建python环境 构建步骤 编写一个dockerfile文件 通过docker build构建文件的一个镜像 docker run 运行镜像 具体步骤 首先,创建目录 pyt ...
- 学习笔记五:dockerfile 构建生产环境镜像
dockerfile 构建生产环境镜像 dockerfile构建nginx镜像 dockerfile构建tomcat镜像 tomcat 的自动启动 把Go代码基于dockerfile做成镜像 把pyt ...
- dockerfile构建LNRP环境练手
格式 FROM RUN 写的是系统镜像中的命令 COPY 复制本地资源到指定目录 EXPOSE 端口开放 创建ngxin dockerfile 练手 FROM centos:centos7 # 创建n ...
- 使用 dockerfile 构建 WordPress 环境
1.配置docker-compose.yml文件 version: '3.3' services: db: image: mysql:5.7 volumes: ...
- 使用Dockerfile定制LNMP环境镜像
使用Dockerfile定制LNMP环境镜像 LNMP是继LAMP之后的又一个非常流行的web框架,即Linux+Nginx+Mysql+PHP的网站架构方案.nginx相较于apache更轻量 ...
- Dockerfile构建实践
Dockerfile构建实践 本文介绍了用于构建有效图像的推荐最佳实践和方法. Docker通过从一个Dockerfile文本文件中读取指令来自动构建映像,该文本文件按顺序包含构建给定映像所需的所有命 ...
- 通过Dockerfile构建Docker镜像
Dockerfile是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建. Dockerfile支持Shell类的行尾添 ...
- Docker 使用Dockerfile构建tomcat镜像
Dockerfile概念: 镜像的定制实际上就是定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那么之前提及的无法重复的问题. ...
- Dockerfile构建容器镜像 - 运维笔记
在Docker的运用中,从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低.所以就需要一 种文件或脚本,我们把想执行的操作以命令的方式写入其 ...
最新文章
- 关于网络唤醒远程开机的方法
- 用stringstream可以用指定字符分割字符串
- 003_html编辑器
- tableau实战系列(七)-服务器日志清理和级别设置
- 键盘各个键对应的ASCLL值
- enc易能变频_ENC易能变频器故障灯亮快修收费合理
- 【C++】C++读取文本中的特定一列
- C++11左值和右值引用讲解
- 机房收费系统合作版(二):透过显示上机人数品味如何做到全心全意为人民服务
- 蚂蚁可信原生负责人入选“2021年度全球青年领袖”名单
- MATLAB深度学习工具箱汇总
- 墙壁绘画机器人 ||arduino processing
- java毕业设计开题报告javaweb户籍管理系统|户口
- 下载百度翻译英文读音
- 厦门龙凤419_福建生物工程职业技术学校2019招生通知书EMS单号
- xdg-open命令
- Java彩信接口开发经验及具体开发实现
- VUE入门-VUE初识者的福音
- 区块链的希望与原罪:从金融场景谈起
- java 使用class转型_java中向上转型(upcast)和向下转型(downcast)
热门文章
- python打开快捷方式_Python打开一个JAR快捷方式
- (第八章)左右外连接
- python通过opc读plc实例_OPC通讯实例(C#通过OPC连接PLC读写数据)
- 【caffe】 Check failed: error == cudaSuccess (30 vs. 0) unknown error
- 中文信息处理(四)—— 神经网络基础
- 杨辉三角形(C语言)(使用一维数组的版本)
- 求水面面积(C语言)
- 《南溪的目标检测学习笔记》——深度学习的假设
- 目标检测——使用OpenCV读取图片要注意进行维度变换
- c/c++教程 - 2.4.2.5 深拷贝和浅拷贝,堆区内存重复释放