容器
文章平均质量分 79
牧羊女说
有马甲线的女程序猿、攻城狮、加班狗~
展开
-
ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memor
在Docker容器中利用Pytorch训练模型的时候,出现了题目中的错误:ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory (shm).ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory (shm).原创 2022-05-07 16:41:45 · 9536 阅读 · 8 评论 -
Docker安装Anaconda并创建虚拟环境
准备在Docker容器中运行深度学习程序,决定使用Anaconda来进行包的安装和管理。这些重复性操作虽然简单,但是步骤难免会忘记,记录下来以备下次直接参考。1. 安装Anaconda比较简单的方式是,去Anaconda官网上找到适合自己的安装包下载到PC机上,然后再上传服务器进行安装。下载地址:Anaconda | Individual Edition当然,也可以直接从服务器上通过wget或者curl命令从国内源下载:wget https://mirrors.tuna.tsinghu原创 2022-03-25 17:52:40 · 8454 阅读 · 8 评论 -
在Docker容器中安装CppCMS
CppCMS是一个基于C++语言的高性能web开发框架,旨在处理极高负荷的web应用。更多介绍可参考:http://cppcms.com/wikipp/en/page/main在一个Docker基础镜像中编译CppCMS,踩了一点点小坑,记录下来,以备后来查阅。下载cppcms源码,下载地址:https://sourceforge.net/projects/cppcms/files/latest/download我用的版本是cppcms-1.2.1,源码包放在Linux服务器自己的目录下(比如/原创 2021-01-15 10:31:14 · 279 阅读 · 2 评论 -
Portainer可视化容器管理—单机版
1. Portainer简介Portainer是一款开源的轻量级Docker容器镜像图形化管理工具,它基于Docker API,提供状态显示面板、应用模块快速布署、容器镜像基本操作(如上传/下载镜像、创建容器、停止容器、移除容器等)、日志显示等。开发者和运维人员可利用Portainer轻松构建、管理和维护Docker环境。2. Portainer安装2.1 搜索portainer镜像如果已明确希望拉取的镜像名称,该步骤可忽略。如果不知道该下载哪些镜像,可通过docker search来搜索:原创 2021-01-18 10:41:39 · 1002 阅读 · 0 评论 -
ubuntu18.04安装nvidia-docker2
最近装了N多套docker环境,把安装步骤整理出来,以后直接拿来用。docker创建容器的流程,正常情况下是这样的:docker --> dockerd --> containerd--> containerd-shim -->runc --> container-process但如果要使用NVIDIA GPU,则需要用到nvidia-docker,那么创建容器的流程则变成下面这样:docker--> dockerd --> containerd原创 2020-12-18 20:06:05 · 491 阅读 · 0 评论 -
Docker学习笔记1 —— 基础概念
最近开发部署用到Docker,在同事的帮助下实现了基本应用,做到了知其然,但并不知其所以然。趁着这两天有点空闲,赶紧找资料恶补基础知识。接下来准备以学习笔记的形式,将一些有用的知识记录下来。1.镜像Image镜像是一个特殊的文件系统。它提供了容器中程序执行需要的所有文件,包括程序的可执行文件、库文件和配置文件。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的root文件系统。容器运行的时候不再依赖宿主机上的文件操作系统类型和配置,可以做到一次配置,到处.原创 2020-11-20 21:33:44 · 1440 阅读 · 4 评论 -
docker服务启动失败的解决方法
一台配置好的服务器,发到客户处突然业务系统不工作了,一查发现显卡驱动挂了,于是处理了显卡驱动,好了之后,docker服务居然也起不来!提示信息:Job for docker.service failed because the control process exited with error code.See "systemctl status docker.service" and "journalctl -xe" for details.查看服务状态如下:看网上的解决方法也是五原创 2020-12-09 14:52:10 · 6372 阅读 · 4 评论 -
容器学习笔记之CPU Cgroup
我们知道,Cgroups可以限制容器资源,比如CPU、Memory、Storage、Network等。最近学习了CPU Cgroup中三个重要的参数:cpu.cfs_quota_us,cpu.cfs_period_us和cpu.shares。在说明这几个参数的意义和作用之前,先了解一下CPU各种状态。1. 用户态与内核态我们通过top命令查看系统中的CPU占用情况,如下图:top结果中,红框框起来的一行包括us,sy,ni,id,wa,hi,si,st这些字符,这些都是什么意思呢?具体含原创 2020-12-03 20:58:34 · 3699 阅读 · 0 评论 -
docker设置服务自动拉起
用docker起了一个算法服务,为了避免服务意外挂掉,或者被误杀,设置了退出自动拉起,docker设置命令行如下:sudo docker run -itd --restart=always --privileged=true --network host --runtime=nvidia --name=my_server -e DISPLAY=unix$DISPLAY -v/tmp/.X11-unix:/tmp/.X11-unix -v $HOME:$HOME --device /dev:/dev a原创 2020-11-28 20:06:53 · 2714 阅读 · 0 评论 -
CentOS 8.4离线安装Docker
用的CentOS 8.4的虚拟机,模拟的服务器环境,无法连接外网,只能离线安装软件。首先通过外网机下载Docker安装包,下载地址:Index of linux/static/stable/x86_64/https://download.docker.com/linux/static/stable/x86_64/大家可以根据自己的需要下载相应的版本,我下载的是20.10.8。解压文件包:tar zxvf docker-20.10.8.tgz得到docker文件夹,进入到该文件夹,可以看原创 2021-09-18 12:52:13 · 978 阅读 · 2 评论 -
CUDA Error: no kernel image is available for execution on device
场景再现:搭建了一台基于NVIDIA GeForce 1080Ti的算法服务器,使用的cuda11.1的docker镜像,显卡驱动:NVIDIA-Linux-x86_64-455.38.run,容器起来后,运行程序时出现题目中的错误:第一反应是,是不是cuda和驱动该版本太高了?因为这套环境原本是在GeForce RTX 3080机器上运行的。所以在第一时间把显卡驱动降到了NVIDIA-Linux-x86_64-440.44.run,cuda版本降到了10.2,并且重新编译了应用程序,但是这个问题仍原创 2021-07-07 18:33:45 · 1358 阅读 · 0 评论 -
容器文件系统OverlayFS
我们知道,容器运行需要镜像,镜像就是容器中程序运行需要的二进制文件、库文件、配置文件和其他依赖项全部打包成的一个大的文件包。那么,如果没有针对容器的文件系统,每运行一个容器,就需要一个单独的镜像...原创 2021-06-18 10:19:30 · 931 阅读 · 2 评论 -
容器学习笔记——OOM Killer与Memory Cgroup
在介绍干货之前,先来运行一个小测试程序。这段小程序通过输入的参数数量不断申请内存资源:#include <stdio.h>#include <malloc.h>#include <string.h>#include <unistd.h>#include <stdlib.h>#define BLOCK_SIZE (1024*1024)int main(int argc, char **argv){ int t原创 2021-01-08 18:44:00 · 3144 阅读 · 0 评论 -
容器内存管理之内存回收
Linux操作系统的体系架构分为内核态和用户态,相应地,内存也有内核态内存和用户态内存,比如,内核需要为页表、内核栈、slab分配内存,用户态进程里需要分配堆内存、栈内存、共享库内存,以及文件读写的Page Cache。回到容器的内存管理,Memory Cgroup不会对内核内存做限制,只会对用户态内存做限制。与用户态相关的两种内存类型主要是RSS和Page Cache。RSS是Resident Set Size的缩写,也就是进程申请到的物理页面的内存大小。对于进程来说,RSS内存包含了进程的代码段内存原创 2021-02-17 20:30:12 · 1010 阅读 · 4 评论