docker常见操作总结
一、原理
1、Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,它能直接访问物理设备,会给每一台虚拟机分配内存、CPU、网络、磁盘等资源,也可以确保虚拟机对应的硬件资源不被其他虚拟机访问,是所有虚拟化技术的核心。
2、虚拟机 指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。虚拟机都会有自己的kernel,自己的硬件,这样虚拟机启动的时候需要先做开机自检,启动kernel,启动用户进程等一系列行为
3、namespace 是一种隔离机制,一个独立的namespace看上去拥有所有linux主机的资源(进程ID、主机名、用户ID、网络访问、进程间通讯和文件系统等),也拥有自己的0号进程(即系统初始化的进程)。一个namespace可以产生多个子namespace
4、[Cgroups]:是Linux内核功能,它让两件事情变成可能:限制Linux进程组的资源占用(内存、CPU);为进程组制作 PID、UTS、IPC、网络、用户及装载命名空间。
5、docker-se 商业版 docker-ce 社区版
二、常用操作
1、更新yum
yum -y update
2、删除旧版本
yum remove docker
3、下载安装软件
yum install -y yum-utils
4、配置官方源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5、配置阿里源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
6、下载docker
yum install docker-ce
7、启动
systemctl start docker
8、查看docker版本
docker version
9、查看docker信息
docker info
10、查看本机所有image
docker image ls
11、下载镜像(使用国内镜像源)
docker image pull hello-world
配置加速 /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
12、运行docker
docker container run hello-world
13、删除image(如果image被容器引用,必须销毁这个容器,才能删除image)
docker image rm hello-world
14、查看运行的中的容器
docker ps
docker ps -a 查看已经退出的容器
docker container ls 查看容器 -a 查看所有的
15、停止容器(状态变成已终止)
docker stop 容器id[CONTAINER ID]
docker container prune 清除所有所有未运行的容器
16、查看容器日志(容器的终端输出)
docker logs 容器id[CONTAINER ID OR NAME]
17、删除容器
docker rm 容器id[CONTAINER ID]
18、拉取ubuntu
docker pull ubuntu:18.04
运行 -i 交互式操作 -t 终端 --rm 容器退出后将其删除 bash 使用bash当作交互
docker run -it --rm ubuntu:18.04 bash
19、运行nginx
docker pull nginx
启动 --name 指定容器名称, -d 后台运行并打印容器id, -p 将容器端口映射到宿主机
docker run --name nginxweb -d -p 8080:80 nginx
访问 127.0.0.1:8080
交互方式进到容器
docker exec -it nginxweb bash
将宿主机得文件复制到容器里
docker cp 宿主机文件 容器id:容器目录
docker cp leopard/ 0944b902095c:/opt
20、启动终止状态的容器
docker container start [容器名]
修改exited状态的容器下文件权限
docker inspect [CONTAINER ID]
找见UpperDir对应的目录,并进入,找见对应的文件进行修改即可
21、查看docker 不同
docker diff nginxweb
22、保存新镜像(docker要在运行状态)
--author 指定修改者 --message 记录修改描述(类似git)
docker commit --author “lifeilong@126.com” --message “修改” nginxweb nginx:v1
给容器镜像修改标签
docker tag <image id> <tagname>
docker tag lifeilong:v1 lifeilong:latest
修改容器启动时执行的命令
docker commit -a "lifeilong" -c 'CMD ["/bin/httpd", "-f", "-h", "/data/html"]' -p b2 lifeilong:v2
23、订制自己的docker
touch Dockerfile创建配置文件,内容如下:
FROM nginx
RUN echo ‘<h1>Hello, Docker!</h1>’ > /usr/share/nginx/html/index.html
构建容器($(pwd)为上下文路径)
docker build -t nginx:v2 $(pwd)
24、Dockerfile命令
COPY test.txt /home 将test.txt复制到容器/home目录(会把文件的元数据也复制,权限时间等)
ADD 高级的复制命令,原路径可以是URL,压缩文件会自动解压
CMD 容器启动命令
25、运行docker
docker run 时后台操作:
1、检查本地是否有镜像,没有就从共有仓库下载
2、利用镜像创建并启动一个容器
3、分配一个文件系统
4、从宿主机网桥中桥接一个虚拟口到容器
5、从地址池配置一个IP地址给容器
6、执行用户指定的应用程序
7、执行完终止容器
26、数据卷,容器内部及之间管理数据
1、创建数据卷
docker volume create my-vol
2、查看
docker volume ls
docker volume inspect my-vol 查看详细信息
3、启动挂载(将数据卷挂载到容器/webapp目录)
docker run -d -P --name nginxtest --mount source=my-vol, target=/webapp nginx
4、删除数据卷
docker volume rm my-vol
docker volume prune 删除所有闲置数据卷
27、挂载主机目录、文件
将主机目录/home/webapp 挂载到容器/opt/webapp 默认权限是读写,加readonly指定为只读
docker run -d -P --name nginxtest --mount type=bind,source=/home/webapp/,target=/opt/webapp,readonly nginx
挂载文件
docker run -d -P --name nginxtest --mount type=bind,source=/home/webapp/,target=/opt/webapp,readonly nginx
28、网络容器互联
创建网络 -d 标识网络类型
docker network create -d bridge my-net
启动两个容器test1和test2在同一网络
docker run -it --rm --name test1 --network my-net nginx bash
docker run -it --rm --name test2 --network my-net nginx bash
docker常见操作总结的更多相关文章
- docker 常见操作
docker rm $(docker ps -a -q --filter status=exited) // 删除不在运行的 镜像
- 动态单链表的传统存储方式和10种常见操作-C语言实现
顺序线性表的优点:方便存取(随机的),特点是物理位置和逻辑为主都是连续的(相邻).但是也有不足,比如:前面的插入和删除算法,需要移动大量元素,浪费时间,那么链式线性表 (简称链表) 就能解决这个问题. ...
- C#路径/文件/目录/I/O常见操作汇总
文件操作是程序中非常基础和重要的内容,而路径.文件.目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案,也希望能提供 ...
- X-Cart 学习笔记(四)常见操作
目录 X-Cart 学习笔记(一)了解和安装X-Cart X-Cart 学习笔记(二)X-Cart框架1 X-Cart 学习笔记(三)X-Cart框架2 X-Cart 学习笔记(四)常见操作 五.常见 ...
- 转:jQuery 常见操作实现方式
http://www.cnblogs.com/guomingfeng/articles/2038707.html 一个优秀的 JavaScript 框架,一篇 jQuery 常用方法及函数的文章留存备 ...
- jQuery 常见操作实现方式
一个优秀的 JavaScript 框架,一篇 jQuery 常用方法及函数的文章留存备忘. jQuery 常见操作实现方式 $("标签名") //取html元素 document. ...
- C#路径/文件/目录/I/O常见操作汇总<转载>
文件操作是程序中非常基础和重要的内容,而路径.文件.目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案,也希望能提供 ...
- [java学习笔记]java语言基础概述之数组的定义&常见操作(遍历、排序、查找)&二维数组
1.数组基础 1.什么是数组: 同一类型数据的集合,就是一个容器. 2.数组的好处: 可以自动为数组中的元素从零开始编号,方便操作这些数据. 3.格式: (一 ...
- 【转】C#路径/文件/目录/I/O常见操作汇总
文件操作是程序中非常基础和重要的内容,而路径.文件.目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案,也希望能提供 ...
随机推荐
- Java 加密/解密Excel
概述 设置excel文件保护时,通常可选择对整个工作簿进行加密保护,打开文件时需要输入密码:或者对指定工作表进行加密,即设置表格内容只读,无法对工作表进行编辑.另外,也可以对工作表特定区域设置保护,即 ...
- t-io Java构建p2p网络
Java 构建p2p网络 这篇文章是一篇关于pbft算法实现的一篇补充文章,但是在这里不会涉及pbft的算法方面,所以可以当做一篇单独的文章食用.如果想查看关于区块链或者PBFT算法的文章,可以参考一 ...
- 《Python学习手册 第五版》 -第12章 if测试和语法规则
本章节的内容,主要讲解if语句,if语句是三大复合语句之一(其他两个是while和for),能处理编程中大多数逻辑运算 本章的重点内容如下: 1.if语句的基本形式(多路分支) 2.布尔表达式 3.i ...
- num10---适配器模式
1.类适配器 Adapter类,通过继承 被适配的类,实现目标类的接口,完成适配. 分析: java 单继承,所以适配器类 需要继承 被适配类,这就要求目标类必须是接口,有一定局限性. 被适配类的方法 ...
- Idea自定义代码块【学习笔记】
前言 idea有一个自定义代码块的功能,可以自定义代码块,方便以后工作中减少一些重复操作,这里就简单记录一下idea好用的模板吧,现在有一个关于日志的模板,用于写一个ServiceImpl方法的时候, ...
- Hexo搭建静态博客踩坑日记(二)
前言 Hexo搭建静态博客踩坑日记(一), 我们说到利用Hexo快速搭建静态博客. 这节我们就来说一下主题的问题与主题的基本修改操作. 起步 chrome github hexo git node.j ...
- Shell脚本 统计店中店导出数据
有一个数据文件 yue.csv 是这样的 #head yue.csv 日期,商家名称,要求在线数,当天在线数,要求在线时长,在线时长达标数, ……"2017-12-31&quo ...
- Centos 7 使用(Service iptables stop/start)关闭/打开防火墙 Failed to stop iptables.service: Unit iptables.service not loaded.
背景: 测试部署NetCore 项目到linux 系统时,窗口显示项目部署成功:但是本机无法访问(linux 在虚拟机上[ centos 7.6] ); 如下图↓ 能够相互ping 通,(Xshe ...
- centos6.8 安装.net core2.1 sdk 或 .net core2.1 runtime
前段时间看.net core 更更更新了,大家反应都挺好,想有机会也学习一下,正好这两天要写一个简单的服务在centos上面跑,于是决定放弃使用java,直接.net core走起来,事情进行的非常顺 ...
- Android中DatePicker日期选择器的使用和获取选择的年月日
场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改 ...