添加软件源,需要提前配置好 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 |
### 初始化镜像 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 mkdir /etc/yum.repos.d/backup && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ # 阿里云镜像源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo sed -i 's/\$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo yum clean all && yum makecache yum repolist # 检查仓库列表是否正常加载 ### 依赖安装 yum -y groupinstall "Development tools" yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel \ sqlite-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel \ libffi-devel gcc-c++ libstdc++-devel python-devel yum install -y net-tools libaio numactl yum -y install gcc gcc-c++ autoconf make yum install -y 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 centos7 systemctl的权限问题 # systemctl status sshd Failed to get D-Bus connection: Operation not permitted 执行以下三步 mv /usr/bin/systemctl /usr/bin/systemctl.old curl -o /usr/bin/systemctl https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py chmod +x /usr/bin/systemctl # sshd -t Could not load host key: /etc/ssh/ssh_host_rsa_key Could not load host key: /etc/ssh/ssh_host_ecdsa_key Could not load host key: /etc/ssh/ssh_host_ed25519_key sshd: no hostkeys available -- exiting. sudo ssh-keygen -A sudo chmod 600 /etc/ssh/ssh_host_*_key sudo chown root:root /etc/ssh/ssh_host_*_key sudo systemctl restart sshd sudo systemctl status sshd # 验证服务状态
systemctl start sshd # 立即启动服务
systemctl enable sshd # 开机自动启动
[root@ml ~]# systemctl status sshd
sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service, enabled)
Active: active (running)
|
|
```
vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com",
"https://docker.1ms.run"
]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
```
- 此时search不走代理,所以仍然不可用
- docker search ubuntu
- 但pull可以走代理,所以可以正常拉取镜像
- docker pull ubuntu:24.04
|
sudo apt update sudo apt install qemu-system qemu-system-arm qemu-utils qemu-system-x86_64 --version qemu-system-aarch64 --version qemu-system-aarch64 --version QEMU emulator version 8.2.2 (Debian 1:8.2.2+ds-0ubuntu1.9) Copyright (c) 2003-2023 Fabrice Bellard and the QEMU Project developers QEMU emulator version 8.2.2 (Debian 1:8.2.2+ds-0ubuntu1.9) Copyright (c) 2003-2023 Fabrice Bellard and the QEMU Project developers
sudo apt install qemu-user-static
注册 binfmt_misc(让内核识别 ARM 可执行格式)
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker run --rm --platform linux/arm64/v8 -it python:3.11 bash
docker run -itd --privileged --platform linux/arm64/v8 --name arm -h arm --net=host -v /wks:/wks -v /ai:/ai -v /mnt:/mnt -v /media:/media python:3.11 bash
docker start arm
docker exec -it arm bash
|
你遇到的错误:
```
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp 31.13.92.5:443: i/o timeout
```
这是**Docker 无法连接到官方镜像仓库 Docker Hub** 的典型表现,通常是**网络受限**(如防火墙、代理、DNS问题)导致的。
---
### ✅ **解决方案一:配置 Docker 使用代理(推荐)**
如果你本地或服务器上有可用的代理(如 Clash、V2Ray、Shadowsocks 等),可以明确告诉 Docker 使用它:
#### ✅ 步骤如下:
```bash
# 1. 创建 Docker 的 systemd 配置目录
sudo mkdir -p /etc/systemd/system/docker.service.d
# 2. 编辑代理配置文件
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
```
#### ✅ 添加内容(假设代理端口为 7890):
```ini
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1"
```
> 如果你的代理运行在局域网其他设备上,请替换为对应 IP。
#### ✅ 应用配置并重启 Docker:
```bash
sudo systemctl daemon-reload
sudo systemctl restart docker
```
#### ✅ 验证是否生效:
```bash
docker info | grep -i proxy
```
输出应包含你配置的代理地址。
---
### ✅ **解决方案二:配置国内镜像加速源(辅助)**
即使配置了代理,也建议**同时配置国内镜像源**,加速访问:
```bash
sudo nano /etc/docker/daemon.json
```
添加内容:
```json
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.baidubce.com"
]
}
```
然后重启 Docker:
```bash
sudo systemctl daemon-reload
sudo systemctl restart docker
```
---
### ✅ **解决方案三:临时绕过网络问题(手动拉取镜像)**
如果你**无法配置代理或镜像源**,可以:
1. 在**能联网的机器上**(如你的笔记本):
```bash
docker pull python:3.11
docker save python:3.11 -o python.tar
```
2. 将 `python.tar` 拷贝到目标服务器:
```bash
docker load -i python.tar
```
---
### ✅ 总结建议
| 场景 | 推荐做法 |
|------|-----------|
| 有代理可用 | 直接配置 Docker 使用代理 |
| 无代理但有网络 | 配置国内镜像源 |
| 完全断网 | 手动 `docker save/load` 镜像 |
---
如果你能告诉我你使用的代理类型(如 Clash、V2Ray、Surge、Trojan 等)和运行平台(Linux/macOS/Windows),我可以给你更具体的配置模板。
|
crash 允许局域网代理 mkdir -p /etc/systemd/system/docker.service.d vim /etc/systemd/system/docker.service.d/http-proxy.conf [Service] Environment="HTTP_PROXY=http://192.168.0.43:7890" Environment="HTTPS_PROXY=http://192.168.0.43:7890" Environment="NO_PROXY=localhost,127.0.0.1" 如果你是本机运行 Clash,可以使用 127.0.0.1:7890,但推荐用局域网 IP,以便其他机器也能用。 sudo systemctl daemon-reload sudo systemctl restart docker root@qisan:~# docker info | grep -i proxy HTTP Proxy: http://192.168.0.43:7890 HTTPS Proxy: http://192.168.0.43:7890 No Proxy: localhost,127.0.0.1 |
|
|
|
|
安装前修改
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上了
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
指定网段
为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 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
在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 |