常用的容器部署
整理了一下常用的容器
1.移除老容器
sudo apt-get remove docker docker-engine docker.io containerd runc
2.安装容器环境
curl -fsSL https://get.docker.com | bash -s docker —mirror Aliyun
docker info systemctl enable docker systemctl enable docker systemctl enable docker.socket
3.修改容器目录
systemctl stop docker.socket systemctl stop docker vi /usr/lib/systemd/system/docker.service # 增加容器的数据目录 --data-root=/data/docker systemctl daemon-reload systemctl start docker.socket systemctl start docker systemctl status docker.socket systemctl status docker docker info
4.换源
vi /etc/docker/daemon.json { "registry-mirrors" : [ "https://ustc-edu-cn.mirror.aliyuncs.com/", "https://mirror.ccs.tencentyun.com", "http://registry.docker-cn.com", "http://docker.mirrors.ustc.edu.cn", "https://mirror.baidubce.com", "http://hub-mirror.c.163.com" ], "insecure-registries" : [ "registry.docker-cn.com", "docker.mirrors.ustc.edu.cn" ], "debug" : true, "experimental" : true }
gitlab
docker pull gitlab/gitlab-ce:latest mkdir -p /opt/gitlab mkdir -p /opt/gitlab/config # 映射到 Glitlab 容器中的配置目录 mkdir -p /opt/gitlab/logs # 映射到 Glitlab 容器中的日志目录 mkdir -p /opt/gitlab/data # 映射到 Glitlab 容器中的数据目录 docker run --detach \ --hostname=192.168.1.50 \ --publish 443:443 \ --publish 9001:80 \ --publish 8022:22 \ --name=mygitlab \ --restart=always \ --volume /opt/gitlab/config:/etc/gitlab \ --volume /opt/gitlab/logs:/var/log/gitlab \ --volume/opt/gitlab/data:/var/opt/gitlab \ --volume /etc/localtime:/etc/localtime:ro \ --privileged=true \ gitlab/gitlab-ce:latest
修改gitlab仓库http下载链接
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml #修改gitlab.yml如下: gitlab: ## Web server settings (note: host is the FQDN, do not include http://) host: 192.168.1.50 port: 9001 https: false time_zone: "Asia/Shanghai" ssh_host: 192.168.1.50 ssh_port: 1022 gitlab-ctl restart
portainer
docker run -d --name=portainer \ --publish 9091:9000 \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /opt/portainer/:/data:rw \ portainer/portainer-ce:latest
mariadb
docker run -d \ --name db \ --restart=always \ -v /opt/db/sqlbak:/sqlbak:rw \ -v /opt/db/data:/var/lib/mysql:rw \ -e MYSQL_ROOT_PASSWORD=09UKtHVPTH2NnxKjhiq3JzAFGNVyHHTC \ mariadb
phpmyadmin
docker run -d \ -e PMA_HOST=db \ --name phpmyadmin \ --restart=always \ phpmyadmin:latest
mm-wiki
docker container run -d \ --restart=always \ --name wiki \ -p 8081:8080 \ --network coust-net \ -v /opt/mm-wiki/bin:/mm-wiki \ -v /opt/mm-wiki/data:/data \ 217heidai/mm-wiki
caddy
docker search caddy
深度学习 nvidia-docker2
# 配置源 curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu18.04/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update # 安装nvidia docker sudo apt-get install nvidia-docker2 sudo systemctl restart docker # 测试CUDA是否能够运行 # https://gitlab.com/nvidia/container-images/cuda/blob/master/doc/supported-tags.md sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi docker run --rm --gpus all nvidia/cuda:11.0.3-base nvidia-smi docker run --rm --gpus all nvidia/cuda:12.2.0-base nvidia-smi
labelimg
docker pull ludwigprager/labelimg # 远程 export DISPLAY=192.168.0.111:0.0 # 本地 export DISPLAY=:0.0 xhost + docker run -ti --rm \ -e DISPLAY=$DISPLAY \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -v $DIR/images/:/images/ \ ludwigprager/labelimg:1 # --device=/dev/video0:/dev/video0 \
labelme
docker pull wkentaro/labelme xhost + docker run -it \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -e DISPLAY=$DISPLAY \ -v /opt/work_docker/labelme/:/root/workdir \ wkentaro/labelme
yolov5_gpu
#指定端口映射、指定GPU模式进行启动 sudo docker run -it \ --runtime=nvidia \ -v /opt/work_docker/yolov5:/project \ -p 16022:22 \ --name yolov5_gpu \ --gpus all \ ultralytics/yolov5:latest
paddleocr
# jupyter notebook docker run --name ppocr \ -v $PWD:/mnt \ -p 8888:8888 \ --shm-size=32g \ paddlecloud/paddleocr:2.5-cpu-latest #CPU # 这是加上参数 --shm-size=32g 是为了防止容器里内存不足 docker run --name ppocr\ -v $PWD:/mnt \ -p 8888:8888 \ -it --shm-size=32g \ paddlecloud/paddleocr:2.5-cpu-efbb0a /bin/bash #GPU docker run --name ppocr \ --runtime=nvidia \ -v $PWD:/mnt \ -p 8888:8888 \ -it --shm-size=32g \ paddlecloud/paddleocr:2.5-gpu-cuda10.2-cudnn7-latest /bin/bash
ESXI 显卡直通
驱动下载 https://www.nvidia.cn/Download/index.aspx?lang=cn
找到相应平台的驱动下载
上传到 /PATH 目录
安装
esxcli software vib install -v /PATH/NVIDIA-vGPU-kepler-VMware_ESXi_6.5_Host_Driver_367.134-1OEM.650.0.0.4598673.vib --maintenance-mode
web管理界面 管理 硬件-->PCI设备-->直通活动 选择相应的硬件 激活 直通
虚拟机配置
内存设置
预留 64G
高级参数配置
hypervisor.cpuid.v0=FALSE #这个代码是欺骗显卡,让它误以为自己运行在物理机上
pciPassthru.64bitMMIOSizeGB=64 #注意:这里的数值计算公式为显卡数量与单卡显存数的乘积向上舍入到下一个2的次幂,例如我的p40(24G)计算方式为:1*24=24≈32;如果是三张p40(24G)计算方式为3*24=72≈128。但是我实际测试下来,如果填写32就无法打开机,只有写64才能开机。
pciPassthru.use64bitMMIO=TRUE #这个是调用内存映射