一键安装docker
官方的一键安装方式:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
国内 daocloud一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
使用gpu显卡,还需要安装NVIDIA Container Runtime
安装后使用带--gpus all的命令创建docker容器会报错:Error response from daemon: could not select device driver "" with capabilities: [[gpu]] 参考以下教程:blog.csdn.net/Stone_hello…
用户添加到docker用户组
普通用户使用docker会提示权限不足,命令前面需要加sudo才可以,使用如下命令将当前用户添加到用户组。
- 添加docker用户组
sudo groupadd docker
- 将当前用户加入到docker用户组
sudo gpasswd -a $USER docker
3.更新用户组以使修改生效
newgrp docker
- 还是不行,给其他用户添加读写权限
sudo chmod o+rw /var/run/docker.sock
- 查看docker用户组
getent group docker
用户相关操作
查看用户:
cat /etc/passwd
添加新用户,它的基本语法如下:
useradd [选项] 用户名
其中,选项可以是:
-
-m:创建用户的创建用户的主目录。
-
-s shell:指定用户的默认shell。
-
-g group:指定用户所属的初始组。
-
-G group1,group2:指定用户所属的其他附加组。
-
-p password:设置用户的密码。
例如,要创建一个名为"john"的用户,可以使用以下命令:
useradd -m -s /bin/bash john
为用户user添加密码
passwd user
usermod命令:usermod命令用于修改用户的属性。它的基本语法如下:
usermod [选项] 用户名
其中,选项可以是:
-
-l 新用户名:修改用户的用户名。
-
-d 新目录:修改用户的主目录。
-
-s shell:修改用户的默认shell。
-
-g group:修改用户所属的初始组。
-
-G group1,group2:修改用户所属的其他附加组。
例如,要将"john"用户的用户名修改为"jane",可以使用以下命令:
usermod -l jane john
修改john用户的主目录为jane:
usermod -d jane john
userdel命令:userdel命令用于删除用户。它的基本语法如下:
userdel [选项] 用户名
其中,选项可以是:
- -r:同时删除用户的主目录。
例如,要删除"john"用户及其主目录,可以使用以下命令:
userdel -r john
切换root用户
su
切换用户
su - <USER>
创建容器
-itd 容器保持后台运行
-p 端口映射,8080:22 服务器端口8080映射到容器端口22
--name 容器名
-h 容器机器名
-u 指定用户
-v 文件映射 宿主机文件:容器目录
--gpus all 使用主机显卡,无此项,不能使用显卡
shm-size 指定cpu share memory容量,防止batcha过大时,dataloader错误
--ipc=host 共享宿主机内存
示例1
docker run -itd -p 1000:22 -u root --name crxm --gpus all --ipc=host -v /data:/data linux_ssh
示例2
sudo nvidia-docker run --name ppocr-root --gpus all -p 6068:22 -h docker -v /data:/data --shm-size=64G --ipc=host -itd cuda11.7-ppocr-torch-root
进入容器
-it 交互式命令行
/bin/bash 保持容器后台运行
示例
打开容器
docker start <CONTAINER_ID>
关闭容器
docker stop <CONTAINER_ID>
进入运行中的容器
docker exec -it crxm /bin/bash
重启docker
systemctl daemon-reload
sudo systemctl restart docker
docker开机自启
设置开机启动:
systemctl enable docker.service
#关闭用
systemctl disable docker.service
查看所有是否设置开机启动:
systemctl list-unit-files | grep enable
Docker 容器设置自启动: 容器自启动要看两种情况
1.新建容器时配置自启参数
docker run --restart=always 容器id 或 容器名称
2.已存在的容器配置自启
docker update --restart=always 容器id 或 容器名称
另外:
1)取消容器自启
docker update --restart=no 容器id 或 容器名称
2)批量设置容器自启
docker update --restart=always $(docker ps -aq)
docker常用命令
查看镜像
docker images
删除镜像
docker rmi <IMAGES_NAME>
查看容器
docker ps -a
删除容器
docker rm -f <CONTAINER_ID>
提交镜像,将容器打包成镜像
docker commit <CONTAINER_ID> <NEW_IMAGE_NAME>
镜像存储到tar文件中 -o 文件名.tar
docker save <IMAGE> -o <IMAGE_TAR_FILE>
解包tar文件为镜像
docker load <IMAGE_TAR_FILE>
使用Dockerfile构建镜像,-f Dockerfile文件地址,-t 镜像名,冒号后面为版本号,不写使用默认latest --build-arg user= 指定用户名
docker build -f <img_name> -t torch:1 .
上传主机文件到容器中
docker cp local_file_path container_name_or_id:/container_path
安装ssh
进入容器,先选择一个用户登陆, 安装ssh
apt-get update
apt-get install openssh-server
apt-get install vim
对ssh文件进行配置
vim /etc/ssh/sshd_config
修改PermitRootLogin参数修改为yes,保存
修改密码passwd
启动ssh服务
service ssh start
重启ssh服务
service ssh restart
查看ssh服务状态
service ssh status
如果报错 sshd: no hostkeys available – exiting. 运行如下
ssh-keygen -A
/etc/init.d/ssh start
容器内容查看ip地址cat /etc/hosts
docker设置ssh开机自启
在 /root 目录下新建一个 start_ssh.sh文件,并给予该文件可执行权限。
touch /root/start_ssh.sh
vim /root/start_ssh.sh
chmod +x /root/start_ssh.sh
start_ssh.sh 脚本的内容,如下:
#!/bin/bash
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
echo "[$LOGTIME] startup run..." >>/root/start_ssh.log
service ssh start >>/root/start_ssh.log
#service mysql start >>/root/star_mysql.log //其他服务也可这么实现
将start_ssh.sh脚本添加到启动文件中
vim /root/.bashrc
在 .bashrc 文件末尾加入如下内容:
# startup run
if [ -f /root/start_ssh.sh ]; then
bash /root/start_ssh.sh
fi
安装Anaconda
官网下载安装包
bash ./<anaconda_path>
如果提示conda命令不存在,进入anaconda3/bin目录
chmod 777 activate
source ./activate
创建python虚拟环境
conda create --name my_first_env python=3.6
迁移虚拟环境时,安装conda-pack
pip install conda-pack
打包虚拟环境,-n 为虚拟环境名称, -o 为输出文件名
conda pack -n torch -o torch.tar.gz
解压并激活虚拟环境
mkdir anaconda3/envs/torch
tar -xzvf torch.tar.gz -C anaconda3/envs/torch
source anaconda3/envs/torch/bin/activate
输入which python可查看是否为虚拟环境的python
安装pytorch,访问官网,使用conda安装,以ubuntu安装cuda11.7为例:
conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
conda install pytorch==2.0.0 torchvision==0.15.0 torchaudio==2.0.0 pytorch-cuda=11.8 -c pytorch -c nvidia
参考
[1] docker容器内部自启 docker设置容器开机自启 blog.51cto.com/u_14844/650… [2] docker容器内服务开机自启动实现方案(以ssh服务为例)tianya2018.com/post/26.htm…