赞
踩
目录
安装WSL,即适用于Windows的Linux子系统(又称分发安装,分发指的是具体的Linux分发版本,如ubuntu,debian,redhat等)
Docker push报错server gave HTTP response to HTTPS client
记一次本地docker安装
开机有画面时不停间断地点击F10进入BIOS(HP惠普),找到固件中启用虚拟化,设置开启
应用和功能->程序和功能->启用或关闭windows功能下
若无hyper-v选项,运行Hyper-V.cmd脚本,执行完成后重启电脑,选项就出现了,全部选中即可
注:hyper-v是微软推出的系统管理程序虚拟化产品,电脑自带
设置用户名密码:
方式一:查看版本号docker version,docker run hello-world 来载入测试镜像测试
测试报错:
方式二:安装了docker desktop工具点开报错,需升级到wsl2
解决办法:按文档操作以下两步即可
测试成功
方式一:
方式二:
build镜像:docker build -t 镜像名:标签 .
根据Dockerfile文件执行一系列命令,详解如下
根据FROM指令获取到镜像,ENV指定环境变量,COPY移动文件(被移动文件需在同一目录下),RUN chmod文件授权,CMD指定启动脚本命令
3.镜像查看:docker images
4.push镜像到远程仓库,报错
解决:docker desktop添加如下insecure-registries配置,并重启
注:docker配置文件daemon.json/daemon.conf(配置远程私有仓库,镜像加速器等)路径默认:/etc/docker
重新push成功
5.portainer上拉取镜像
6.创建/编辑容器并启动
docker run -p 10108:10108 --name 容器名称 -e "SPRING_PROFILES_ACTIVE=prod" -d 当前镜像
已有的镜像,使用container id开启即可:docker start containerId
常用命令参数:
-p:指定端口映射,宿主机端口:容器端口
-P:随机端口映射,容器内部端口随机映射到主机的端口
--name:指定容器名称
-e:设置环境变量
-d:后台运行,并返回容器id
注:该命令是docker create和docker start的结合
portainer操作如下:
7.容器查看
docker ps:查看运行中容器
docker ps -a:查看所有容器
ERROR: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/_ping": dial unix /var/run/docker.sock: connect: permission denied
docker通信权限不足(/var/run/docker.sock)
1、添加用户组的方式解决问题(只适用于在容器外部部署的方式)
在容器本身就是在docker中部署的,容器所在的用户在容器内部,所以无法把容器所在的用户加入到docker.sock的用户组
(1)将用户加入docker组($USER:当前用户,其他用户改成相应的用户名即可)
sudo gpasswd -a $USER docker
(2)查看用户组下用户是否添加成功:cat /etc/group | grep docker
重启docker服务:sudo systemctl restart docker
修改权限/var/run/docker.sock为666
2、修改相关文件或文件夹(docker.sock)权限为777,或者直接暴露docker.sock
风险较大,在任何地方都能使用docker命令了,很有可能会被恶意攻击者完全接管
3、使用root用户权限启动容器
在启动命令中加入-u root
Docker自从1.3.X之后docker registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务导致
需添加insecure-registry配置,添加方式有如下两种:
1.启动命令添加参数:--insecure-registry
(1)查找docker.service配置文件路径:find / -name docker.service
(2)修改docker.service配置,添加启动命令参数
vim /etc/systemd/system/multi-user.target.wants/docker.service
2.配置文件中添加参数
(1)在/etc/docker目录下创建配置文件daemon.conf
添加选项DOCKER_OPTS=" --insecure-registry=私有仓库IP:私有仓库端口"
(2)指定docker配置文件:在docker.service文件中添加EnvironmentFile=-/etc/docker/daemon.conf
-:忽略错误
/etc/docker/daemon.conf:配置文件绝对路径(包括配置文件名称)
(3)ExecStart引入配置文件中的变量$DOCKER_OPTS,后续添加多个私有仓库在daemon.conf配置文件中添加即可:空格隔开,参考格式如下:
"--insecure-registry=私有仓库IP:私有仓库端口 --insecure-registry=私有仓库IP:私有仓库端口"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。