Docker基础知识及坑
目录
1.实用docker工具
2.问题
3.批量删除docker镜像
4.未解决的问题:
5.下载仓库的命名空间为A的镜像,推送到仓库的命名空间为B的地方;
6.centos6.3,内核3.10.0_3-0-0-28,docker版本为1.7.1会有的问题
7.centos8的容器不能够在宿主机为centos6的内核上运行
8.git pull报错:
9.make安装git时,要先安装gcc
10.docker学习:
11.数据卷没有权限的问题:
1.实用docker工具
50+ 实用的 Docker 工具推荐 - OSCHINA - 中文开源技术交流社区
2.问题
Darwin book-Pro-5.local 17.7.0 Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RELEASE_X86_64 x86_64
docker端口映射或启动容器时报错Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen - 北极之光的博客 - 博客园
3.批量删除docker镜像
https://jingyan.baidu.com/article/1612d50011053da20e1eeefc.html
docker批量删除容器、镜像 - yanyouqiang - 博客园
docker rmi $(docker images | grep "xxx.xxx.com/xxxx/xxxxxmo" | awk '{print $3}')
4.未解决的问题:
Failed to remove container (容器名): Error response from daemon: Driver devicemapper failed to remove root filesystem 容器ID: Device is Busy
解决方案:docker rm -f 容器名
注意:也会报错,但是docker ps -a | grep 容器名,是真的删掉了;再部署没问题;
5.下载仓库的命名空间为A的镜像,推送到仓库的命名空间为B的地方;
步骤1:登录镜像仓库docker login -u=仓库用户名 -p=仓库密码 仓库
步骤2:docker pull 仓库/命名空间A/镜像:镜像版本
步骤3:查看本地镜像docker images;发现已经下载下来;
步骤4:登录镜像仓库docker login -u=仓库用户名 -p=仓库密码 仓库
步骤5:docker tag 镜像ID 仓库名/命名空间B/镜像:镜像版本
步骤6:docker push 仓库名/命名空间B/镜像:镜像版本
知识:
docker tag : 标记本地镜像,将其归入某一仓库。
语法bash
- docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
6.centos6.3,内核3.10.0_3-0-0-28,docker版本为1.7.1会有的问题
无法进行push;报如下问题:
The push refers to a repository [xxxx.xxxx.com/xxx/xxxxx] (len: 1)
c7aaaaaa9a: Image push failed
Error pushing to registry: Server error: 500 trying to push xxx/xxxx blob - sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaa55b46d4
原因诸如此类问题:
跟上传镜像层的大小有关系;
问题定位:先service docker stop;然后service docker start ,最后docker -d -s overlay -g /home/disk3/work/docker_root -D进行错误的查看;
通过指定-s overlay 解决如下问题:
[root@xxxxxx.xxx.xxx tool]# docker -d
ERRO[0000] [graphdriver] prior storage driver "devicemapper" failed: Error running DeviceCreate (CreatePool) dm_task_run failed
FATA[0000] Error starting daemon: error initializing graphdriver: Error running DeviceCreate (CreatePool) dm_task_run failed
-g /home/disk3/work/docker_root,解决如下问题:
即,无法执行docker build进行镜像的构建;
前提是:将/var/lib/docker 下的内容去全cp到/home/disk3/work/docker_root目录下;
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 14G 14G 0 100% /var
最后push还是无法解决,只能更新docker版本,这里更新为1.12.5来解决push问题了;
service docker stop
service docker startdocker daemon -d -s overlay -g /home/disk3/work/docker_root -Dservice docker restart
docker daemon -d -s overlay -g /home/disk3/work/docker_root -Ddocker login -e 邮箱 -u 用户名 -p 密码 注册服务器
docker push 仓库/镜像:版本
最终修改docker配置,默认叫docker.service中的ExecStart的内容,才能永久解决docker存储和驱动问题。
参考链接:Linux下正确修改Docker镜像和容器的默认存储位置,亲测有效
Docker容器日常操作命令 - 运维笔记 - 散尽浮华 - 博客园
三种方法修改docker的默认存储位置_BigData_Mining的博客-CSDN博客
7.centos8的容器不能够在宿主机为centos6的内核上运行
原因参考:1812120 – OpenSSH fails to start in LXC container with error "Failed to seed from getrandom: Function not implemented"
解决方案:
把容器的基础镜像centos:latest 改为centos:6
8.git pull报错:
$ git pull
error: cannot run ssh: No such file or directory
fatal: unable to fork
原因:docker容器中没有安装ssh
解决方案:
centos6.10系统安装,
yum -y install openssh-server openssh-clients
9.make安装git时,要先安装gcc
make要执行cc命令,所以安装git之前要先安装gcc,要不然报错;
10.docker学习:
访问仓库 - Docker —— 从入门到实践
11.数据卷没有权限的问题:
貌似:可以在WORKDIR之后,RUN进行当前目录的chmod -R +x 目录绝对路径/,进行权限的更改
12.安装指定版本的gcc
Centos6下编译安装gcc6.4.0 - Milton - 博客园
13.若半截把数据盘去掉了,只剩系统盘,启动docker容器是pod容易报UnexpectedAdmissionError
发现仅查看集群节点中的/var/lib/kubectl,进行ls发现输入输出错误;
方法是:把/etc/fstab文件中的最后一行注释掉即可
14.如何创建 CentOS 系统的 Docker 基础镜像?(打包本地系统)
如何创建 CentOS 系统的 Docker 基础镜像 - 链滴
环境隔离方案探索(二)、docker镜像制作 | 好好单调
制作Docker基础镜像(CentOS 8.1) - 简书
使用 febootstrap 制作自定义基础镜像:使用 febootstrap 制作自定义基础镜像 - 云+社区 - 腾讯云
原生centos系统:Index of /centos-store/6.3/
tar命令参数:tar命令详解 - 阿笨猫 - 博客园
docker高手之路:Docker 的运行机制 - Docker 进步之路
不同容器共享多个volume:掘金
docker 目录挂载:关于Docker目录挂载的总结 - iVictor - 博客园
15. 1.12.5docker 启动daemon:
Client:
Version: 1.12.5
API version: 1.24
Go version: go1.6.4
Git commit: 7392c3b
Built: Fri Dec 16 06:06:58 2016
OS/Arch: linux/amd64
Experimental: true
Server:
Version: 1.12.5
API version: 1.24
Go version: go1.6.4
Git commit: 7392c3b
Built: Fri Dec 16 06:06:58 2016
OS/Arch: linux/amd64
Experimental: true
启动daemon:
nohup docker daemon > docker_daemon_start.log 2>&1 &
16.daemon启动配置文件:
【K8S】Docker向私有仓库拉取/推送镜像报错(http: server gave HTTP response to HTTPS client) - 冰河团队 - 博客园
vim /etc/docker/daemon.json
vim /etc/sysconfig/docker
17.docker push报 unauthorized: authentication required
docker login -e xxx@xxx.com -u username -p mima 仓库域名
此问题,跟docker版本有关
18.docker login加-e是什么意思?
19.blob upload unknown是什么意思?
20.entrypoint
使用 Docker run 覆盖 ENTRYPOINT - 王诗翔
替换dockerfile中的entrypoint中的命令:docker run -it --entrypoint /bin/bash 镜像仓库:tag
21.Dockerfile 中的 CMD 与 ENTRYPOINT
Dockerfile 中的 CMD 与 ENTRYPOINT - sparkdev - 博客园
22.构建不同架构的镜像:
用docker buildx
23.
Docker基础知识及坑相关推荐
- Docker03 Docker基础知识、Docker实战
1 Docker基础知识 1.1 什么是Docker Docker是一个可以装应用的容器,就像杯子可以装水.书包可以装书一样:docker官网 Docker是Docker公司开发的,并开源到GitHu ...
- Docker基础知识:Containers,Namespace,CGroups
<Linux环境使用命名空间编写一个简单的容器应用程序:namespace,container,cgroups>https://rtoax.blog.csdn.net/article/de ...
- docker 基础知识分享ppt
给团队做的docker基础分享ppt, 见下面的附件. https://files.cnblogs.com/files/harrychinese/docker_intro.pptx 转载于:https ...
- docker基础知识
Docker 是一个能够把开发应用程序自动部署到容器的开源引擎.Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案. Docker 的基础是 Linux 容器(LXC)等技术,它提供了一个简 ...
- 20、Docker基础知识-Image Index 和 manifest
文章目录 1.引子 2.Image Index 和 Manifest 和 config 2.1.Image Index 2.2.Manifest 拉取镜像的流程 拉取镜像文件在哪里 总结 1.引子 D ...
- Docker 基础知识 - 使用绑定挂载(bind mounts)管理应用程序数据
绑定挂载(bind mounts)在 Docker 的早期就已经出现了.与卷相比,绑定挂载的功能有限.当您使用绑定挂载时,主机上的文件或目录将挂载到容器中.文件或目录由其在主机上的完整或相对路径引用. ...
- docker基础知识之挂载本地目录
https://my.oschina.net/piorcn/blog/324202 http://blog.csdn.net/yangzhenping/article/details/43667785 ...
- 静茹docker容器的几种方法_1-容器和docker基础知识
[TOC] ## 一 容器的概念 ### 1.什么是容器: 容器是在隔离的环境里面运行的一个进程,这个隔离的环境有自己的系统目录文件,有自己的ip地址,主机名等. 也可以说:容器是一种轻量级虚拟化的技 ...
- Docker训练营Docker基础知识学习笔记2
一.学习知识点概要 1.对数据集进行判断是否存在缺失值和异常值 2.辨别变量间的关系以及变量与预测值之间的关系 3.数据集的特征 4.如何运用python代码去实现以上内容 二.学习内容 1.读取数据 ...
最新文章
- LeetCode简单题之较大分组的位置
- 全程360°4K!CNN将VR直播美国超级日全食
- Java设计模式(十三):代理设计模式
- Java NIO之Selector
- Flex里监听mouseDownOutside事件解决弹出窗口点击空白关闭功能
- mybatis报错,找不到对应mapper文件
- 关注信息安全认证培训
- 了解 yarn 、npm、nodejs
- python面试题之如何用Python输出一个斐波那契数列
- win系统删除,已经注册的服务
- Angular 7和ASP.NET Core 2.1入门
- ROW_NUMBER() OVER 排序函数的基本用法
- [补档]noip2019集训测试赛(十)
- 凑数算法 java_[蓝桥杯][2017年第八届真题]包子凑数 (Java代码)
- ydui的datetime日期选择组件
- 谷歌此号码无法验证解决
- jenkins插件下载缓慢
- api接口如何对接?
- 51单片机和315M无线发射模块编码与解码
- WebGL编程指南-30 三维物体雾化效果,立方体雾化效果