docker 安装

 
添加软件源,需要提前配置好 yum
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
ll /etc/yum.repos.d/
total 12
-rw-r--r--. 1 root root 2323 Jun 16 17:53 CentOS-Base.repo
-rw-r--r--. 1 root root 2640 Jun 17 19:25 docker-ce.repo
-rw-r--r--. 1 root root  358 Jun 16 17:52 redhat.repo

添加必要的依赖
yum install -y yum-utils device-mapper-persistent-data lvm2

更新并安装 Docker-CE
yum makecache fast
yum -y install docker-ce

开启Docker服务
systemctl start docker
这个命令会在/var/lib目录下创建一个docker目录
后续导入的镜像,生成的容器等文件会存这个目录下

 

    

linux

 

https://blog.csdn.net/2401_83620690/article/details/137858054

root@ai:~# docker --version
Docker version 24.0.5, build 24.0.5-0ubuntu1~22.04.1

二、Docker19.03之后,内置gpu支持****

增加了对–gpus选项的支持,我们在docker里面想读取nvidia显卡再也不需要额外的安装nvidia-docker2了。需要提前禁用nouveau:lsmod | grep nouveau没有输出即禁用了

需要安装:
1.安装nvidia驱动、cuda 
root@ai:~# ll /usr/local/cuda
lrwxrwxrwx 1 root root 22  5月  9 15:40 /usr/local/cuda -> /etc/alternatives/cuda/


2、安装nvidia-container-runtime  
3、安装docker-19.03

1、安装驱动和cuda:

下载对应版本的cuda:CUDA Toolkit 12.1 Update 1 Downloads | NVIDIA Developer
比如我下载的为Centos7版本的RPM包,下载后直接安装。安装cuda的时候会自动安装nvidia驱动,控制台信息:

Installing the NVIDIA display driver…

Installing the CUDA Toolkit in /usr/local/cuda-9.1 …

ps:也可以先手动安装驱动,然后再通过.run文件安装cuda(可以选择不安装nvidia驱动)

安装cuda时报错:错误:软件包xxx需要:opencl-filesystem、ocl-icd

解决:安装epel数据源即可yum install epel-release –y。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/2401_83620690/article/details/137858054




2、安装nvidia-container-runtime:

distribution=$(. /etc/os-release;echo I D ID IDVERSION_ID)

curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo

sudo yum install -y nvidia-container-toolkit nvidia-container-runtime
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/2401_83620690/article/details/137858054




3、运行容器时,添加**–**gpu参数启用gpu支持。
使用所有GPU

$ docker run --gpus all nvidia/cuda:9.0-base nvidia-smi
使用两个GPU

$ docker run --gpus 2 nvidia/cuda:9.0-base nvidia-smi
指定GPU运行

$ docker run --gpus ‘“device=1,2”’ nvidia/cuda:9.0-base nvidia-smi

$ docker run --gpus ‘“device=UUID-ABCDEF,1”’ nvidia/cuda:9.0-base nvidia-smi

docker exec -it centos  #进入容器

nvidia-smi #容器内查看gpu使用情况

测试:docker pull ufoym/deepo:keras-py36-cu80  #拉取支持gpu的keras & tensorflow环境

docker run --gpus all --rm -it ufoym/deepo:keras-py36-cu80  #启动后,进入容器。

进入python环境 (docker run --gpus all --rm -it ufoym/deepo)
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/2401_83620690/article/details/137858054





Ubuntu distributions 
# Install nvidia-docker and nvidia-docker-plugin 
wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.0-rc/nvidia-docker_1.0.0.rc-1_amd64.deb 

sudo apt-get update
sudo apt-get install sysv-rc


sudo dpkg -i /tmp/nvidia-docker_1.0.0.rc-1_amd64.deb && rm /tmp/nvidia-docker*.deb # Test nvidia-smi 

nvidia-docker run --rm nvidia/cuda nvidia-smi 
    
Other distributions 
# Install nvidia-docker and nvidia-docker-plugin 
wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.0-rc/nvidia-docker_1.0.0.rc_amd64.tar.xz 
sudo tar --strip-components=1 -C /usr/bin -xvf /tmp/nvidia-docker_1.0.0.rc_amd64.tar.xz && rm /tmp/nvidia-docker*.tar.xz 
# Run nvidia-docker-plugin 
sudo -b nohup nvidia-docker-plugin > /tmp/nvidia-docker.log 
# Test nvidia-smi 
nvidia-docker run --rm nvidia/cuda nvidia-smi 
    
Standalone install 
# Install nvidia-docker and nvidia-docker-plugin 
wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.0-rc/nvidia-docker_1.0.0.rc_amd64.tar.xz 
sudo tar --strip-components=1 -C /usr/bin -xvf /tmp/nvidia-docker_1.0.0.rc_amd64.tar.xz && rm /tmp/nvidia-docker*.tar.xz 
# One-time setup 
sudo nvidia-docker volume setup 
# Test nvidia-smi 
nvidia-docker run --rm nvidia/cuda nvidia-smi

https://www.jb51.net/server/311388mrs.htm
    

 

    

 

    

 

    

 
sudo apt-get update
sudo apt install docker.io

systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service

sudo systemctl start docker
sudo systemctl enable docker
docker -v

然后补充nvidia docker安装,安装方法会随版本/时间变化,具体看官网
本此安装(ubuntu24,2024-10-15)
https://nvidia.github.io/nvidia-docker
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html


nvidia驱动安装 
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update  
sudo apt upgrade 

使用ubuntu-drivers工具检测可用的NVIDIA驱动,并安装推荐的驱动:
ubuntu-drivers devices  
sudo ubuntu-drivers autoinstall
    

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

sudo apt-get install -y  nvidia-docker2

sudo systemctl restart docker

docker run -itd --privileged --name kl -h kl --net=host --gpus all  -v /tmp:/tmp -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all cent7  bash


 
root@ai:/tmp# docker exec -it kl bash
[root@kl /]# 
[root@kl /]# 
[root@kl /]# nvidia-smi
Mon May 20 03:35:49 2024       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.171.04             Driver Version: 535.171.04   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 4070 ...    Off | 00000000:01:00.0 Off |                  N/A |
| N/A   38C    P0              N/A /  55W |      8MiB /  8188MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                            
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
+---------------------------------------------------------------------------------------+
    
yum -y install epel-release 
yum install -y git gcc-c++ automake autoconf patch sox file gcc-gfortran libtool subversion python3 p7zip p7zip-plugins tcl  zlib-devel 

yum install -y net-tools libaio numactl
yum -y install gcc gcc-c++ autoconf make
yum install openssl-devel bzip2-devel

### gcc 升级-8
yum install centos-release-scl
yum install devtoolset-8-gcc*
/usr/bin/scl enable devtoolset-8 bash

 
https://github.com/wangkaisine/SGE-On-CentOS

https://ant.apache.org/bindownload.cgi
cd /opt/app/
wget https://dlcdn.apache.org//ant/binaries/apache-ant-1.10.14-bin.tar.gz
tar -xvf apache-ant-1.10.14-bin.tar.gz 


JDK5 
https://www.oracle.com/it/java/technologies/java-archive-javase5-downloads.html


export JAVA_HOME=/opt/app/jdk-11
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:/opt/app/apache-ant-1.10.14/lib/ant-launcher.jar:/opt/app/apache-ant-1.10.14/lib/ant.jar:$CLASSPATH
export PATH=$JAVA_HOME/bin:/opt/app/apache-ant-1.10.14/bin:$PATH



yum -y install epel-release
yum -y install jemalloc-devel openssl-devel ncurses-devel pam-devel libXmu-devel hwloc-devel hwloc hwloc-libs java-devel javacc ant-junit libdb-devel motif-devel csh ksh xterm db4-utils perl-XML-Simple perl-Env xrog-x11-fonts-ISO8859-1-100dpi xrog-x11-fonts-ISO8859-1-75dpi
sudo yum install -y binutils binutils-devel gcc gcc-c++ glibc glibc-devel libaio libaio-devel libXext libXtst libX11 libXau libXi make sysstat

mkdir -p /BiO/src
cd /BiO/src
wget https://arc.liv.ac.uk/downloads/SGE/releases/8.1.9/sge-8.1.9.tar.gz
tar -zxvf sge-8.1.9.tar.gz
cd sge-8.1.9/source/
sh scripts/bootstrap.sh && ./aimk && ./aimk -man
export SGE_ROOT=/Bio/gridengine && mkdir $SGE_ROOT
echo Y | ./scripts/distinst -local -allall -libs -noexit
chown -R sgeadmin.ageadmin /BiO/gridengine





SGE安装包下载地址: 
https://sourceforge.net/projects/gridengine/files/SGE/releases/8.1.9/
https://arc.liv.ac.uk/downloads/SGE/releases/8.1.9/sge-8.1.9.tar.gz


https://download.csdn.net/download/chenyuan1972/33253084?utm_source=bbsseo

tar -xzf sge-8.1.9.tar.gz
cd sge-8.1.9
./install

export SGE_ROOT=/path/to/sge
export PATH=$SGE_ROOT/bin:$PATH


 


 


 
参考 
https://zhuanlan.zhihu.com/p/658600079


 


 
If you have trouble building vLLM, 
we recommend using the NVIDIA PyTorch Docker image.

# Use `--ipc=host` to make sure the shared memory is large enough.
docker run --gpus all -it --rm --ipc=host nvcr.io/nvidia/pytorch:23.10-py3

  
https://github.com/triton-inference-server/server/issues/5931
ERROR: The NVIDIA Driver is present, but CUDA failed to initialize. #5931 

选择正确的CUDA版本
https://docs.nvidia.com/deeplearning/triton-inference-server/release-notes/rel-23-06.html#rel-23-06

 
docker network create --subnet=192.168.73.0/24 mydk
docker run -itd --privileged --name llm -h llm --net=host  --ipc=host --gpus all -v /C/wks:/opt/wks   -v /C/docker/data:/data -v /C/docker/app:/opt/app -v /F/soft:/opt/soft   -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all nvcr.io/nvidia/pytorch:23.10-py3   bash

docker run -itd --privileged --name llm -h llm --net=host  --gpus all -v /C/wks:/opt/wks   -v /C/docker/data:/data -v /C/docker/app:/opt/app -v /K/soft:/opt/soft   -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all nvcr.io/nvidia/pytorch:23.10-py3   bash

docker exec -it llm bash

docker run -itd --privileged --name kl -h kl  --gpus all  -p 18009:8009 -p 18008:8008 -p 18007:8007 -p 18006:8006 -p 18005:8005 -p 18004:8004 -p 18003:8003 -p 18002:8002 -p 18001:8001 -p 18000:8000 -p 19000:9000 -p 8888:8888 -p 19999:9999  -v /C/wks:/opt/wks  -v /C/docker/data:/data -v /C/docker/app:/opt/app -v /F/soft:/opt/soft -v /F/models:/models -v /F/tpf:/opt/tpf -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all ubuntu  bash

  

 

  

service ssh start

 
mv /usr/bin/systemctl /usr/bin/systemctl.old
curl https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py > /usr/bin/systemctl
chmod +x /usr/bin/systemctl
  

 
sudo yum update
sudo yum install openssh-server
    
sudo systemctl status sshd
sudo systemctl enable sshd
sudo netstat -tulnp | grep sshd

替换CentOB-Base

 
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

 
sudo yum clean all
sudo yum makecache
sudo yum update

docker 修改目录

安装前修改

 
ln -s /data/app/docker /var/lib/docker

更重要/方便的是,
如果之前有一套docker正在用,那么先关闭docker,备份/var/lib/docker目录
迁移/重装OS之后,再将之前备份的/var/lib/docker目录映射回来,
就跟原来的一模一样 

安装后修改

 
docker会下载容器,运行会挂载磁盘,所以我们需要把docker装在大容量的分区。

docker info  #查看docker的基本信息
#停止docker服务
systemctl stop docker


#备份原目录
systemctl stop docker
cp -r /var/lib/docker  /opt/app/docker
mv /var/lib/docker /var/lib/docker.bak
ln -s /opt/app/docker /var/lib/docker
systemctl start docker

如果是WSL,即在WSL中安装docker,
不允许使用外挂目录,即无法将插入电脑的移动硬盘,挂载到docker上了

docker 常用语法
### 初始化镜像
cat centos-7-x86_64.tar.gz |docker import - cent7

### 创建子网
为docker划分一个子网段,仅限于该服务器内使用
docker network rm  mydk
docker network create --subnet=192.168.73.0/24 mydk

### 创建容器
docker run -itd --name pt1 -h pt1 --net mydk --ip 192.168.73.111 -v /opt:/opt/  -v /tmp:/tmp cent7 bash
docker exec -it pt1 bash

### 依赖安装
yum install -y net-tools libaio numactl
yum -y install gcc gcc-c++ autoconf make
yum install openssl-devel bzip2-devel


独立的系统配置文件,可以在docker中使用systemctl命令
docker run -itd --privileged --name ch2 -h ch2 --net mydk --ip 192.168.1.122 -v /export/tanpengfei3/docker/clickhouse2:/export -v /tmp:/tmp -v /opt/:/opt cent7  /usr/sbin/init
docker exec -it ch2 bash
yum install -y net-tools libaio numactl

docker load and save
---------------------------------------
docker save -o  文件名   镜像名
docker load -i  文件名  

docker重命名
docker tag 9d5e8ab5c9b3 ubuntu:1.2


docker 保存容器

 
root@ai:~# docker ps -a |grep py1
5f9beeb10544   cent7       "/usr/sbin/init"   2 hours ago   Exited (137) 4 minutes ago              py1

docker commit -m "add webrtc" -a "73biji" 5f9beeb10544 py1:1

root@ai:~# docker images 
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
py1          1         04940cdcebdf   56 seconds ago   1.92GB
cent7        latest    ab5ce6c9b1ab   2 weeks ago      589MB

保存
docker save -o  py1_1.tar   04940cdcebdf
或
docker save -o py1.tar py1:1

删除
dcoker rmi 04940cdcebdf
 
导入py1_1.tar,需要重新命名
docker load -i py1_1.tar 

重新起个名字
docker tag 04940cdcebdf py1:1

删除
dcoker rmi 04940cdcebdf

导入py1.tar,不需要重新命名,因为导出时带名称了
docker load -i py1.tar 

查看镜像
root@ai:~# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
py1          1         04940cdcebdf   10 minutes ago   1.92GB

centos7 容器创建示例

指定网段

为docker划分一个子网段,仅限于该服务器内使用
docker network rm  mydk
docker network create --subnet=192.168.73.0/24 mydk

docker run -itd --name pt1 -h pt1 --net mydk --ip 192.168.73.111 -v /opt:/opt/  -v /tmp:/tmp cent7 bash
docker exec -it pt1 bash

拥有systemctl使用权限

 
docker run -itd --privileged --name py1 -h py1 --net mydk --ip 192.168.73.73 -v /opt:/opt -v /tmp:/tmp cent7  /usr/sbin/init
docker exec -it py1 bash

与主机共享IP+端口映射

 
docker run -itd --name py1.1 -h py1.1 --net=host -p 3000:3000  -p 8888:8888 -p 8080:8080 -p 8000:8000 -p 8008:8008 -v /opt:/opt -v /tmp:/tmp -v /media:/media  py1:1  bash

root@ai1:~# docker ps -a
CONTAINER ID   IMAGE     COMMAND            CREATED          STATUS          PORTS     NAMES
79f3308df2cd   py1:1     "bash"             31 seconds ago   Up 29 seconds             py1.1

docker exec -it py1.1 bash

外挂磁盘映射

 
docker run -itd --name py1.2 -h py1.2 --net=host -p 8888:8888 -p 8080:8080 -v /opt:/opt -v /tmp:/tmp -v /media:/media py1:3  bash

-v /media:/media,这里是ubantu系统,这种方式直接将插入ubantu系统的磁盘,映射到了docker中 

如果有独立的IP,可以使用nfs挂载远程的目录
docker run -itd --privileged --name py1 -h py1 --net mydk --ip 192.168.73.73 -v /opt:/opt -v /tmp:/tmp -v /media:/media py1:3  bash

容器创建记录

 
与主机共享IP,不必再设置端口映射,docker用的就是主机的端口,
docker run -itd --privileged --name py1 -h py1 --net=host -v /opt:/opt -v /tmp:/tmp -v /media:/media -v /data:/data py1:1  bash

docker run -itd --privileged --name k2 -h k2 --net=host -v /tmp:/tmp -v /media:/media kaldi:2  bash

日常前端开发环境:包含NodeJs,python 等 
docker commit -m "nodejs and python env" -a "tanpf" a7b77c5f1c80 dev:1
docker save -o /data/docker/dev_1.tar dev:1

docker commit -m "kaldi open" -a "tanpf" 8d90fe5b5da9 kaldi:1

kaldi创建记录

 
cat centos-7-x86_64.tar.gz |docker import - cent7

docker run -itd --privileged --name kl -h kl --net=host -v /tmp:/tmp  cent7  bash

docker run -itd --privileged --name kl -h kl --net=host -v /mnt/w/data:/data -v /mnt/w/tpf:/opt/tpf -v /mnt/w/soft:/opt/soft -v /mnt/w/tmp:/tmp -v /mnt/w/docker/ai:/ai  cent7  bash

dev

 
cat centos-7-x86_64.tar.gz |docker import - cent7

docker run -itd --privileged --name nd -h nd --net=host -v /wks:/wks -v /tmp:/tmp  cent7  bash

docker run -itd --privileged --name kk -h kk --net=host  -v /tmp:/tmp  dev:2  bash

docker run -itd --privileged --name ol -h ol --net=host -v /data:/data -v /media:/media  -v /tmp:/tmp  dev:3  bash

docker run -itd --privileged --name ki -h ki --net=host -v /data:/data -v /media:/media  -v /tmp:/tmp -v /media/xt/tpf/tpf:/opt/tpf dev:4  bash

docker run -itd --privileged --name ki -h ki --net=host -v /data:/data -v /media:/media  -v /tmp:/tmp -v /mnt:/mnt -v /mnt/c/wks:/opt/wks dev:4  bash

docker run -itd --privileged --name ki -h ki --net=host -v /data:/data -v /media:/media  -v /tmp:/tmp -v /mnt:/mnt -v /mnt/c/wks:/opt/wks dev:5  bash

docker run -itd --privileged --name kk -h kk --net=host -v /data:/data -v /media:/media  -v /tmp:/tmp -v /mnt/c/wks:/opt/wks dev:5  bash


alias kl="docker exec -it kl bash"
alias kk="docker exec -it kk bash"
alias dev="docker exec -it ol bash"

 

docker run -itd --privileged --name kk -h kk --net=host -v /wks:/wks -v /tmp:/tmp -v /data:/data -v /media:/media cent7  bash
    
docker run -itd --privileged --name kk -h kk --net=host -v /opt:/opt -v /wks:/wks -v /tmp:/tmp -v /data:/data -v /media:/media cent7  bash
    
alias kk="docker exec -it kk bash"


yum install -y net-tools libaio numactl
yum -y install gcc gcc-c++ autoconf make
yum install openssl-devel bzip2-devel



不建议在docker中存储数据,尤其是WSL上的docker,可能第二天起来连docker都没了

 
cat centos-7-x86_64.tar.gz |docker import - cent7
docker network rm  mydk
docker network create --subnet=192.168.73.0/24 mydk

docker run -itd --name kk -h kk --net mydk --ip 192.168.73.11 -p 33000:8000 -p 33033:33033 -p 33088:8888 -p 33008:8008  -p 33007:8007 -p 33006:8006 -p 33005:8005  -p 33004:8004 -v /opt:/opt  -v /data:/data -v /mnt:/mnt -v /media:/media -v /tmp:/tmp cent7 bash
docker exec -it kk bash
alias kk="docker exec -it kk bash"


yum install -y net-tools libaio numactl
yum -y install gcc gcc-c++ autoconf make
yum install openssl-devel bzip2-devel


    

 
adduser xt 
adduser mysql 
chown -R mysql.mysql /opt/app/mysql
    

 
[root@kk web73]# ./web73
addr:192.168.73.11:33033,upload dir:/tmp

http://172.31.150.83:33033
    


 
PS C:\wks\app> docker save -o ubantu.tar ubuntu
PS C:\wks\app> docker ps -a
CONTAINER ID   IMAGE                                  COMMAND                   CREATED        STATUS                        PORTS                              NAMES
b5195d17cfd9   nvcr.io/nvidia/pytorch:23.10-py3       "/opt/nvidia/nvidia_…"   7 weeks ago    Exited (137) 7 hours ago                                         llm
b7de48446fea   ubuntu                                 "bash"                    2 months ago   Exited (255) 2 months ago     0.0.0.0:8000-8003->8000-8003/tcp   kl
2b93868550bf   ghcr.io/open-webui/open-webui:ollama   "bash start.sh"           2 months ago   Up About a minute (healthy)   0.0.0.0:3000->8080/tcp             open-webui
c04e4d2628b2   lobehub/lobe-chat                      "docker-entrypoint.s…"   2 months ago   Exited (255) 2 months ago     0.0.0.0:3210->3210/tcp             recursing_cannon
PS C:\wks\app> docker commit -m "open-webui" -a "73biji" 2b93868550bf open-webui:1


 


 


 
xt@ai:~/soft/docker$ sudo su - root
root@ai:~# docker load -i /home/xt/soft/docker/kk.tar

docker run -itd --privileged --name kk -h kk --net host  -v /opt:/opt  -v /data:/data -v /mnt:/mnt -v /media:/media -v /tmp:/tmp kk bash
docker exec -it kk bash
alias kk="docker exec -it kk bash"


alias mstart="nohup mysqld_safe  --defaults-file=/opt/app/mysql/data/my_13301.cnf  --user=mysql &"
alias min="mysql -uautomng -pAutomng_123 -S /opt/app/mysql/data/logs/my_13301.sock"


export PYTHONPATH=/data/jupyter/python/lib/python3.10/site-packages
export PATH=/data/jupyter/python/bin:$PATH

export NODEWKS=/wks/nodejs
export NODE_BASE=$NODEWKS/app/node-v14.21.3-linux-x64
export PATH=$NODE_BASE/bin:$PATH
export NODE_GLOBAL=$NODE_BASE/global
export PATH=$NODE_GLOBAL/bin:$PATH


alias www="ssh -p '26225' '144.34.185.72'"
alias ggg="rsync -e 'ssh -p26225' -avP 144.34.185.72:/data/jupyter/python /data/jupyter/"
alias ccc="rsync -e 'ssh -p26225' -avP 144.34.185.72:/home/xt/.cache/*  ~/.cache/"
alias tx="ssh '101.43.140.244'"





 
docker pull ubuntu:latest
  

docker run -itd --privileged --name kl -h kl --net=mydk --gpus all --ip 192.168.73.12 -p 8000:8000 -p 8001:8001 -p 8002:8002 -p 8003:8003  -v /C/wks:/opt/wks -v /T/soft:/opt/soft  -v /D/app:/opt/app -v /T/data:/data  -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all ubuntu  bash

apt update 
apt install net-tools vim pkg-config  git  ntpdate  libncurses5  libxft-dev curl

apt-get install libssl-dev  #openssl

apt-get install p7zip-full sudo

gcc软件包
sudo apt install build-essential
apt install cmake

cd
vim .bashrc
alias ll='ls -l'

 

  

 

  

 
需要先启动桌面docker 

 
连接oracle环境,机器学习
docker run -itd --privileged --name kk -h kk --net=host -v /c/wks:/opt/wks -v /d/soft:/opt/soft  -v /k/soft:/opt/soft2   node:v1.1  bash


 


 


 
docker run -itd --privileged --name lm -h lm --net=host  --gpus all -v /data:/data -v /mnt/c/wks:/opt/wks -v /mnt/d/soft:/opt/soft  -v /mnt/d/app:/opt/app  -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all nvcr.io/nvidia/pytorch:23.10-py3   bash

    

 

    

 

    

 

    

 

    
本站docker镜像

 
docker network rm  mydk
docker network create --subnet=192.168.73.0/24 mydk

dev2

 
docker run -itd --privileged --name jk -h jk --net=host -v /tmp:/tmp dev:2 bash
docker exec -it jk bash

 
(base) [xt@kk wks]$ pwd
/home/xt/wks
(base) [xt@kk wks]$ ll
total 4
drwxrwxr-x. 1 xt xt 4096 Apr  9 05:33 blog
drwxrwxr-x. 1 xt xt   18 Apr  8 10:13 wasm
drwxr-xr-x. 1 xt xt   20 Jun 17 01:14 webrtc

(base) [xt@kk yuyin1]$ pwd
/home/xt/wks/webrtc/yuyin1

https://192.168.1.143:8080
vscode访问docker

 
在windows自带的ubuntu环境上创建一个docker,
-p 22001:22
把ubantu的上22001映射到docker中ssh默认的22端口,
连接ubantu上的22001即连接到docker

root@qisan:/data/jupyter# cd /mnt/d/soft/
root@qisan:/mnt/d/soft# docker load -i docker/ubantu20.tar
867d0767a47c: Loading layer [==================================================>]  75.14MB/75.14MB
Loaded image: ubuntu:20.04 

root@qisan:/mnt/d/soft# docker images|grep ubuntu
ubuntu                   20.04       ff0fea8310f3   2 years ago     72.8MB

由于多添加几个端口映射,后续若端口不够用,可以配置nginx转发
docker run -itd --privileged --name a11 -h a11  --gpus all -p 22001:22 -p 8009:8009 -p 8008:8008 -p 8000:8000 -p 9000:9000 -p 8888:8888 -p 9999:9999  -v /opt:/opt  -v /data:/data -v /tmp:/tmp -v /mnt:/mnt -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all ubuntu:20.04  bash

apt update 
apt install net-tools vim pkg-config  git  ntpdate  libncurses5  libxft-dev curl
6 31
apt install build-essential
apt install cmake sudo



 


 
docker run --gpus all -it -d --shm-size=1g --name cm_syfang -v /home/host/xxxx:/home/container/xxxx -p 8022:22 repository:tag

命令 --gpus all 表示容器内可以使用所有 gpu 设备

命令 --gpus “device=0,1”表示使用第一和第二个 gpu 设备

命令 -it 表示进入 docker 之后使用命令行交互

命令 -d 表示后台运行

命令 --shm-size=1g 调整容器共享内存大小

命令 --name attack_liujun 给 docker 容器命名

命令 -v [主机目录]:[容器目录] 挂载数据卷,实现数据的共享和持久化,注意使用绝对路径方式

挂载目录的优点 1.实现数据备份;2.方便数据传输

命令 -p xxxx:22 此时便做了主机端口 8022 与容器端口 22 的映射,可以通过这个端口连接到远程的服务器
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/u012408145/article/details/140666798
    

 

    

安装 ssh 服务

 
sudo apt-get install openssh-server

设置 root 用户密码(设置 root 用户密码为: admin(尽量使用统一的密码))
passwd root

在容器内修改 ssh 配置文件
输入指令
sudo vim /etc/ssh/sshd_config

修改 ssh 配置文件

命令 i: 表示在当前光标位置进入输入模式

在末尾“插入模式”添加下面内容:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PermitRootLogin yes

按“Esc”取消“插入模式”,并输入 :wq 保存并退出



启动 ssh 服务
sudo /etc/init.d/ssh start

重启 ssh
service ssh restart

sudo service ssh status

原文链接:https://blog.csdn.net/u012408145/article/details/140666798
    

 


端口映射方式

 
apt install net-tools
ifconfig
ssh -p 22001 root@172.31.150.83

 
如果是开发好一些服务,供他人方便调用时,可提前映射端口,

但若是开发环境,不知道有哪些端口时,
这些端口如果没有提前映射,
那么还需要重新创建docker以映射端口,可以提前多创建几个端口映射

 


 
sudo apt-get update
sudo apt-get install nginx
sudo systemctl start nginx  
sudo systemctl enable nginx
sudo ufw allow 80

 
定位Nginx配置文件:
Nginx的主配置文件通常位于/etc/nginx/nginx.conf,
但更常见的做法是在/etc/nginx/sites-available/目录下创建或修改配置文件,
然后将其链接到/etc/nginx/sites-enabled/目录。

vim /etc/nginx/sites-available/default

jupyter端口转发示例

 
root@qisan:/etc/nginx/sites-available# cat default
server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

        location /pt11 {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_pass http://172.17.0.2:8888;
        }
}

 
cat ~/.jupyter/jupyter_notebook_config.py
c.NotebookApp.ip='*'
c.NotebookApp.open_browser=False
c.NotebookApp.port=8888
c.NotebookApp.base_url = '/pt11/'

重点是
c.NotebookApp.base_url = '/pt11/'

 
nginx -t 
systemctl restart nginx

 


 


 


参考文章