一、先centos7安装或debian安装:
二、docker安装(文档主要在centos环境操作):
安装docker
//1、这种方式安装最新版
# 添加阿里云Docker CE仓库
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装Docker
sudo yum install docker-ce docker-ce-cli containerd.io
[root@iZ7xv5338yx57mku9ci5qoZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@iZ7xv5338yx57mku9ci5qoZ ~]# docker --version
Docker version 26.1.4, build 5650f9b
[root@iZ7xv5338yx57mku9ci5qoZ
//2、如果改docker路径配置
1、清楚所有镜像
2、从新改目录
sudo vi /lib/systemd/system/docker.service
查: ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
修改:ExecStart=/usr/bin/dockerd --data-root /home/dockersys -H fd:// --containerd=/run/containerd/containerd.sock
其中: /home/dockersys 就是docker 指定的目录
sudo systemctl daemon-reload
sudo systemctl restart docker
2、当前天用户添加的docker用户组,这样不用加sudo了 https://my.oschina.net/zjzhai/blog/196375
sudo groupadd docker 添加组
sudo gpasswd -a ${USER} docker 添加当前用户到dokcer组中 , 当前用户获取 ${USER}
sudo service docker restart
systemctl start docker #开启docker
systemctl enable docker #设置开机自启
systemctl daemon-reload
systemctl restart docker
docker ps
docker --version
[web@localhost ~]$ docker --version
Docker version 25.0.4, build 1a576c5
[web@localhost ~]$
3、CentOS7服务器部署nvidia-docker
一、设置nvidia-docker的存储库和 GPG 密钥
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
二、更新包列表后安装包和依赖项
yum clean expire-cache
三、安装nvidia-docker
nvidia-docker1已被弃用,可直接安装nvidia-docker2,使用和nvidia-docker一样:
sudo yum install -y nvidia-docker2
然后重启docker
sudo systemctl restart docker
#1、paddle 测试成功
[web@localhost ~]$ docker search cuda:10.2-cudnn8
NAME DESCRIPTION STARS OFFICIAL
jacklove2022/pytorch1.8-gpu 基础镜像为 nvidia/cuda:10.2-cudnn8-runtime-u… 1
jacklove2022/pytorch1.9-gpu 基础镜像为 nvidia/cuda:10.2-cudnn8-runtime-u… 0
tungluu2203/ubuntu16_cuda10 nvidia/cuda:10.2-cudnn8-devel-ubuntu16.04 + … 0
samyin/algo-env 基础镜像: nvidia/cuda:10.2-cudnn8-devel-ubun… 0
[web@localhost ~]$
//setenforce 0 # /usr/bin/docker: Permission denied 不运行这个会报无权限
//docker run -ti --name myGpu --gpus all -v /home/data/docker/web:/home/data --network=host --runtime=nvidia jacklove2022/pytorch1.8-gpu
nvidia-docker pull registry.baidubce.com/paddlepaddle/paddle:2.6.0-gpu-cuda11.7-cudnn8.4-trt8.4
docker run -d -t --name myPaddleGpu --gpus all -v /home/data/docker/web:/paddle --network=host --runtime=nvidia --restart=on-failure:5 registry.baidubce.com/paddlepaddle/paddle:2.6.0-gpu-cuda11.7-cudnn8.4-trt8.4 /paddle/python/paddld.sh
docker start myPaddleGpu
docker exec -ti myPaddleGpu /bin/bash
nvidia-smi
watch -n 1 nvidia-smi
watch -n 2 nvidia-smi -q -i 0 -d TEMPERATURE #每隔 2 秒刷新一次 查看温度 , 手动 记录日记+ 得开发定时器: nvidia-smi -q -i 0 -d TEMPERATURE >> 1.log
pip install PyMySQL -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install python-multipart -i https://pypi.tuna.tsinghua.edu.cn/simple # 文件上传
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
//pip install Flask -i https://pypi.tuna.tsinghua.edu.cn/simple
在百度docker中安装pytoch
rwkv的v6最新版:
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 # CUDA 11.7
pip install pytorch-lightning==1.9.5 -i https://pypi.tuna.tsinghua.edu.cn/simple (不行就先安装这个先)
pip install deepspeed wandb ninja -i https://pypi.tuna.tsinghua.edu.cn/simple
验证gpu版是否安装成功:
>>> import torch
>>> print(torch.__version__)
0.4.0
>>> print(torch.cuda.is_available())
True
fastapi:
#pip install fastapi uvicorn -i https://pypi.tuna.tsinghua.edu.cn/simple
#pip install bottle -i https://pypi.tuna.tsinghua.edu.cn/simple
#pip install websockets -i https://pypi.tuna.tsinghua.edu.cn/simple
或是直接运行闻达包:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
在百度docker中安装tensorflow
pip install tensorflow-gpu==1.13.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install keras==2.1.5 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install tensorflow-gpu -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install keras==2.1.5 -i https://pypi.tuna.tsinghua.edu.cn/simple
如果要安装GPU版本:
python36可能安装对应的这个版本: 可以下载官网的这个版本上安装: docker pull tensorflow/tensorflow:1.14.0-gpu
docker列表:https://hub.docker.com/r/tensorflow/tensorflow/tags?page=23&page_size=&name=&ordering=
docker run -ti --name tfGpu --network=host --gpus all --privileged=true --runtime=nvidia -v /root/ai/docker:/home/data bladerunnerlabs/lip2-tf1-dt2:latest
docker start tfGpu
docker exec -ti tfGpu /bin/bash
nvidia-smi
python #发现居然用的是python2.7并还兼容了,奇葩
#设置权限
sudo chown -R web:web /home/data/docker/web
sudo chown -R polkitd:polkitd /home/data/docker/web/mysql/data/
//#3、pytoch
// nvidia-docker pull nvcr.io/nvidia/pytorch:23.02-py3
// docker run -d -t --name myPytochGpu --gpus all --privileged --network=host --runtime=nvidia --restart=on-failure:5 -v /root/ai:/paddle nvcr.io/nvidia/pytorch:23.02-py3 /bin/bash
// docker start myPytochGpu
// docker exec -ti myPytochGpu /bin/bash
#4、tensorflow
nvidia-docker pull gg22mm/python:tensorflow2.11.0-gpu-py38-roop-ffmpeg-insightface_v4
检查环境 - 检查是否有gpu:
>>> import torch
>>> torch.cuda.is_available()
True
>>>import tensorflow as tf
>>>print(tf.test.is_gpu_available())
True
import paddle
paddle.utils.run_check()
------------------- 其它用法 -------------------
Dockerfile 安装
1、下载Dockerfile 放在一个目录中
2、执行
docker build -t isk . 注意cd到Dockerfile目录下, 执行,别忘记后面有一个点. 其中 isk 是镜像images名, 可以自定义
sudo systemctl start docker
sudo systemctl stop docker
如果docker启动失败:https://blog.csdn.net/Leon_Jinhai_Sun/article/details/102765506 (出错: 为containerd.io版本太低,当前安装要大于 1.2.2-3的版本才行)
问题: package docker-ce-3:19.03.2-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
- cannot install the best candidate for the job
- package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
- package containerd.io-1.2.2-3.el7.x86_64 is excluded
- package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
sudo docker ps
sudo docker rmi -f redis 加-f 强制删除
sudo docker rm : 删除一个或多个 容器
sudo docker rmi : 删除一个或多个 镜像 //首先docker rmi时指定名称,而非image id,然后再执行docker rmi -f image idj即可:
sudo docker prune: 用来删除不再使用的 docker 对象(一般不过)
//docker修改端口(docker运行时修改端口)
//1、之前8080指向80: docker run -p 8080:80 nginx
//2、改成8081指向80: docker container update --publish-add 8081:80 nginx
//3、删除8081端口映射:docker container update --publish-rm 8081 容器名或容器id
三、Docker 自定义
sudo docker ps //查看已启动容器
sudo docker ps -a //查看所有容器
sudo docker images //查看已安装镜像
sudo docker pull centos:7 //获取最新版的 centos 镜像 ,最好不要用centos:latest 这个是不支持ll命令
php安装
用镜像生成容器,容器名为php73,--expose 9000 开放一个端口或一组端口(被坑死了这里,这里不象是ningx 是开放映射端口,这里指的是开放内网端口,nginx会通过这个内网端口进行php访问。另一个坑就是php与nginx必须同时共享一个目录:/usr/local/servers/docker/web做为web,要不然他们都是自己的容器里运行,静态的图片与html用的是nignx的容器,php又是用另一个容器,导致两边的文档都要必须保持一样才对正常访问,绝对是个悲剧,这里被坑得也很惨)
sudo docker run -ti --name php73 -v /usr/local/servers/docker/web:/usr/local/servers/web:rw --expose 9000 php73 //用此命令时行生成php容器
命令说明:
--name php73 : 将容器命名为 php73 , 9000后的那个php73是php的镜像名(可从网站下载或自己建立镜像)
-v /usr/local/servers/docker/php73:/usr/local/servers/php73 //将主机中项目的目录 php73 挂载到容器的 php73,并设置权限rw(读写)
-v /usr/local/servers/docker/web:/usr/local/servers/web:rw //设置web路径,这个到时要与ningx、svn等保持一样
--expose 9000 //开放端口,nginx会调用这个端口时行内网访问(因为nginx与php一般都在同一机子并同一个内网)
sudo docker start php73 //启动容器
sudo docker exec -ti php73 /bin/bash //以后进入容器shell
sudo docker inspect php73 | grep "IPAddress" //查看ip
sudo docker inspect mysql57 查看内网id,mysql用 看:"IPAddress"
sudo docker inspect nginx16 查看容器内网ip "Gateway": "172.17.0.1" 这个ip是不会变的
netstat -nelp 查看开放的端口centos7完全删除docker
1.查询安装过的包
yum list installed | grep docker
docker-engine.x86_64 17.03.0.ce-1.el7.centos @dockerrepo
2.删除安装的软件包
yum -y remove docker-engine.x86_64
3、清除镜像和容器文件。
rm -rf /var/lib/dockerCentOS7服务器部署nvidia-docker
说明:
传统的docker可以用来部署各种容器,以在一台设备上运行多个隔离的服务,缺点是并不能够调用GPU。最近实验室有台装了T4的服务器,想着能不能够装个带GPU的docker容器,然后远程连接用来训练我的模型。查了一下,其实是可以的,不过要借助nvidia-docker这个工具,经过了一番折腾,算是成功了,现将折腾的过程记录如下。
要想使用nvidia-docker创建带GPU的容器,需要安装英伟达显卡的驱动,网上看很多教程,说还要安装cuda和cudnn,其实这两个在宿主机上不安装也行,等创建容器的后,在容器内部安装配置即可。而且不同的容器可以安装配置不同的cuda和cudnn,创建容器之后,只要将其打包成镜像,那么用不同版本的cuda时只要创建个容器,将会非常的方便。
官方nvidia-docker文档:https://docs.nvidia.com/datacenter/cloud-native/
2、安装docker(必须要装高版本的,要不不能装nvidia-docker)
这里使用阿里云一键安装脚本进行安装,安装docker后记得开启docker并设置开机自启动
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl start docker #开启docker
systemctl enable docker #设置开机自启
docker --version
systemctl start docker
systemctl stop docker
3、设置nvidia-docker的存储库和 GPG 密钥
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
4、更新包列表后安装包和依赖项
yum clean expire-cache
5、安装nvidia-docker
nvidia-docker1已被弃用,可直接安装nvidia-docker2,使用和nvidia-docker一样:
sudo yum install -y nvidia-docker2
然后重启docker
sudo systemctl restart docker
6、测试是否安装成功
docker pull nvidia/cuda:10.2-devel-centos7
docker pull nvidia/cuda:10.2-runtime-centos7
docker pull nvidia/cuda:10.2-base-centos7
#测试成功
//nvidia-docker run --rm --gpus all nvidia/cuda:11.2-base nvidia-smi
setenforce 0 # /usr/bin/docker: Permission denied 不运行这个会报无权限
docker pull nvidia/cuda:10.2-cudnn8-runtime-centos7 # 用了这个
docker run -ti --name myGpu --gpus all -v /home/data/docker/web:/home/data --network=host --runtime=nvidia nvidia/cuda:10.2-cudnn8-runtime-centos7
docker start myGpu
docker exec -ti myGpu /bin/bash
nvidia-smi
7、总结
安装nvidia-docker其实就三步,安装NVIDIA显卡驱动,安装docker和安装nvidia-docker,服务器可以不安装cuda和cudnn,下一篇博客介绍如何配置带GPU的容器。安装docker
Linux安装Docker
//Linux中关闭SELinux的方法(这个新装的linux一定要执行,很中要,否则后面mysql都不能生成启动docker了):
sudo vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出。
关闭防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld 禁止防火墙开机
// 仅此一条命令就可以搞定,安的版本太旧(我用这个版,兼容最好,速度最快)
sudo yum -y install docker-io
sudo systemctl restart docker
sudo docker ps
//这种方式安装最新版
curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun
systemctl daemon-reload
systemctl restart docker
docker ps
docker --version
1、关机后重启,docker自动启动
sudo systemctl enable docker 然后重启
2、当前天用户添加的docker用户组,这样不用加sudo了 https://my.oschina.net/zjzhai/blog/196375
sudo groupadd docker 添加组
sudo gpasswd -a ${USER} docker 添加当前用户到dokcer组中 , 当前用户获取 ${USER}
sudo service docker restart
Docker pull速度慢解决方案
https://blog.csdn.net/weixin_43569697/article/details/89279225
sudo vi /etc/docker/daemon.json
插入以下国内镜像地址:
Docker pull速度慢解决方案或不能上传:
sudo vi /etc/docker/daemon.json
//有gpu的话添加的(没有就不要加)
{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
//没有gpu只要加下面即可
"registry-mirrors": [
"https://mirror.gcr.io",
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn"
],
"live-restore": true // 解决 docker push 已经无法推送 unauthorized: authentication required 说明: https://support.huaweicloud.com/deployman_faq/deployman_faq_1095.html
}
sudo systemctl daemon-reload
//sudo systemctl restart docker
Windows 系统上Docker 安装:
Windows Docker 安装,先安windows子系统 linux
说明:
https://www.runoob.com/docker/windows-docker-install.html
https://blog.csdn.net/harry5508/article/details/105132207 (主要是看配置docker下载,用阿里代理)
1、安装 Hyper-V:
Hyper-V 是微软开发的虚拟机,类似于 VMWare 或 VirtualBox,仅适用于 Windows 10。这是 Docker Desktop for Windows 所使用的虚拟机。
但是,这个虚拟机一旦启用,QEMU、VirtualBox 或 VMWare Workstation 15 及以下版本将无法使用!如果你必须在电脑上使用其他虚拟机(例如开发 Android 应用必须使用的模拟器),请不要使用 Hyper-V!
配置wsl:
进入doc更新wsl
解决报错: Docker Desktop requires a newer WSL kernel version.
方式一(失败)、
命令行:wsl --update
方式二、
说明:https://learn.microsoft.com/zh-cn/windows/wsl/install-manual
步骤 1
启用适用于 Linux 的 Windows 子系统 ,需要先启用“适用于 Linux 的 Windows 子系统”可选功能,然后才能在 Windows 上安装 Linux 分发。
以管理员身份打开 PowerShell(“开始”菜单 >“PowerShell” >单击右键 >“以管理员身份运行”),然后输入以下命令:
运行:dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
步骤 2 (只是升降系统)
检查运行 WSL 2 的要求
要更新到 WSL 2,需要运行 Windows 10。
对于 x64 系统:版本 1903 或更高版本,内部版本为 18362 或更高版本。
对于 ARM64 系统:版本 2004 或更高版本,内部版本为 19041 或更高版本。或 Windows 11。
更新:
如果运行的是 Windows 10 版本1903 或 1909,请在 Windows 菜单中打开“设置”,导航到“更新和安全性”,然后选择“检查更新”。 内部版本号必须是 18362.1049+ 或 18363.1049+,次要内部版本号需要高于 .1049。 阅读详细信息:WSL 2 即将支持 Windows 10 版本 1903 和 1909。
查看版本:
右键我的电脑->属性->关于
步骤 3
启用虚拟机功能
运行: dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
步骤 4 (可以运行这个就可以了吧)
下载 Linux 内核更新包 :https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
双击以运行 - 系统将提示你提供提升的权限,选择“是”以批准此安装。
安装完成后,请继续执行下一步 - 在安装新的 Linux 分发时,将 WSL 2 设置为默认版本。 (如果希望将新的 Linux 安装设置为 WSL 1,请跳过此步骤。)
重新启动计算机,以完成 WSL 安装并更新到 WSL 2。
步骤 5 (不用这一步)
将 WSL 2 设置为默认版本
wsl --set-default-version 2
2、安装Docker:
//方式一、安装Docker Desktop: (不建议这种方式,有些程序在这样的环境非常慢)
// Docker Desktop 官方下载地址: https://docs.docker.com/desktop/install/windows-install/
// 注意:此方法仅适用于 Windows 10 操作系统专业版、企业版、教育版和部分家庭版! 现在已经不用了,直接用子系统 hyperf启动快
方式二、linux 子系统(推荐的方式)
https://blog.csdn.net/liyunfan2016/article/details/131495881 (图片有用,其它的都没用)
https://blog.csdn.net/liqingtx/article/details/110309766
Windows 子系统 debian 设置 root 密码:
管理员身份运行 PowerShelll 或 cmd,执行后,退出
debian config --default-user root
可选:以root账号登录,并设置密码
管理员身份运行 PowerShelll 或 cmd,执行后,退出
debian
passwd root
# 设置密码
可选:
切换默认登录用户回 Shanks
管理员身份运行 PowerShelll 或 cmd,执行后,退出
debian config --default-user tt
cmd窗口打开
输入 docker --version 或 docker run hello-world
docker run -d -t --name conda -v /mydocker:/usr/local/servers/web:rw –-network=host --privileged=true gg22mm/python:miniconda_base
docker exec -ti conda /bin/bash
source activate conda启动 Docker
sudo systemctl start docker
sudo systemctl stop docker
如果docker启动失败:https://blog.csdn.net/Leon_Jinhai_Sun/article/details/102765506 (出错: 为containerd.io版本太低,当前安装要大于 1.2.2-3的版本才行)
问题: package docker-ce-3:19.03.2-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
- cannot install the best candidate for the job
- package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
- package containerd.io-1.2.2-3.el7.x86_64 is excluded
- package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
sudo docker ps
sudo docker rmi -f redis 加-f 强制删除
sudo docker rm : 删除一个或多个 容器
sudo docker rmi : 删除一个或多个 镜像 //首先docker rmi时指定名称,而非image id,然后再执行docker rmi -f image idj即可:
sudo docker prune: 用来删除不再使用的 docker 对象(一般不过)
//docker修改端口(docker运行时修改端口)
//1、之前8080指向80: docker run -p 8080:80 nginx
//2、改成8081指向80: docker container update --publish-add 8081:80 nginx
//3、删除8081端口映射:docker container update --publish-rm 8081 容器名或容器id
Docker 自定义
sudo docker ps //查看已启动容器
sudo docker ps -a //查看所有容器
sudo docker images //查看已安装镜像
sudo docker pull centos:7 //获取最新版的 centos 镜像 ,最好不要用centos:latest 这个是不支持ll命令
php安装
用镜像生成容器,容器名为php73,--expose 9000 开放一个端口或一组端口(被坑死了这里,这里不象是ningx 是开放映射端口,这里指的是开放内网端口,nginx会通过这个内网端口进行php访问。另一个坑就是php与nginx必须同时共享一个目录:/usr/local/servers/docker/web做为web,要不然他们都是自己的容器里运行,静态的图片与html用的是nignx的容器,php又是用另一个容器,导致两边的文档都要必须保持一样才对正常访问,绝对是个悲剧,这里被坑得也很惨)
sudo docker run -ti --name php73 --network=host --restart=always -v /usr/local/servers/docker/web:/usr/local/servers/web:rw gg22mm/phpsys:php73_pdf_imagick_exif_read_data //用此命令时行生成php容器
命令说明:
--name php73 : 将容器命名为 php73 , 9000后的那个php73是php的镜像名(可从网站下载或自己建立镜像)
--network=host //所有ip都可以访问到容器里,不指定固定端口
--restart=always //容器异常会重启
-v /usr/local/servers/docker/php73:/usr/local/servers/php73 //将主机中项目的目录 php73 挂载到容器的 php73,并设置权限rw(读写)
-v /usr/local/servers/docker/web:/usr/local/servers/web:rw //设置web路径,这个到时要与ningx、svn等保持一样
//--expose 9000 //开放端口,nginx会调用这个端口时行内网访问(因为nginx与php一般都在同一机子并同一个内网)
sudo docker start php73 //启动容器
sudo docker exec -ti php73 /bin/bash //以后进入容器shell
sudo docker inspect php73 | grep "IPAddress" //查看ip
sudo docker inspect mysql57 查看内网id,mysql用 看:"IPAddress"
sudo docker inspect nginx16 查看容器内网ip "Gateway": "172.17.0.1" 这个ip是不会变的
netstat -nelp 查看开放的端口容器打包成镜像(方例以后端口映射,其它服务器使用)
sudo docker stop php73 //停止容器
sudo docker commit -m="php74+swoole+redis" -a="wll" f455cc50f083 php74 #docker commit -m="paddle:3.0.0b1-gpu-cuda11.8-cudnn8.6-trt8.5" -a="wll" 73affbba0b28 virtual_human
各个参数说明:
-m: 提交的描述信息
-a: 指定镜像作者
f455cc50f083:容器 ID
php74 指定要创建的目标镜像名
sudo docker save -o nginx16.tar nginx16 将镜像 nginx16 生成 nginx16.tar 文档
sudo docker load<nginx16.tar //载入镜像
ll nginx16.tar
mv nginx16.tar down/images
发布外网
sudo docker tag 6320f78cbe0a gg22mm/phpsys:redis57 //给将要上传的镜像打标签,注意仓库名一定要写正确,docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)
REPOSITORY TAG IMAGE ID CREATED SIZE
redis57 latest 6320f78cbe0a 19 hours ago 555MB
gg22mm/phpsys redis57 6320f78cbe0a 19 hours ago 555MB
sudo docker login -u gg22mm -p aaaaaa //报错说明:https://support.huaweicloud.com/intl/zh-cn/deployman_faq/deployman_faq_1095.html
sudo docker push gg22mm/phpsys:redis57 //上传镜像
sudo docker pull gg22mm/phpsys:redis57 //下载镜像
https://hub.docker.com/repository/registry-1.docker.io/gg22mm/phpsys/tags?page=1
gg22mm,aaaaaa
新版的docker要这样来登陆:
1、 vi ~/docker_password.txt 然后把密码放进去: aaaaaa
2、 登陆
cat ~/docker_password.txt | docker login --username gg22mm --password-stdin
或
docker login --username gg22mm --password-stdin < ~/docker_password.txt
上面的改docker目录其它还有另一种方式指定:
2、从新改目录
sudo vi /lib/systemd/system/docker.service
查: ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
修改:ExecStart=/usr/bin/dockerd --data-root /home/dockersys -H fd:// --containerd=/run/containerd/containerd.sock
其中: /home/dockersys 就是docker 指定的目录
sudo systemctl daemon-reload
sudo systemctl restart docker下面是新的方式指定:
注意:"data-root": "/home/dockersys"
[root@localhost sdc]# cat /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.hpcloud.cloud",
"https://docker.m.daocloud.io",
"https://docker.unsee.tech",
"https://docker.1panel.live",
"http://mirrors.ustc.edu.cn",
"https://docker.chenby.cn",
"http://mirror.azure.cn",
"https://dockerpull.org",
"https://dockerhub.icu",
"https://hub.rat.dev",
"https://proxy.1panel.live",
"https://docker.1panel.top",
"https://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://docker.ketches.cn"
],
"live-restore": true,
"data-root": "/home/dockersys"
}

发表评论 取消回复