前言
以linux而言,linux操作系统会有一个主进程pid=1派生出其他进程来控制不同服务,例如: pid=2 ——> python pid=3——>java pid4——>php,三个服务可能会相互影响,使用者期望将这三个不同的服务,跑在不同的运行时环境中实现相互不影响,同时不会增加服务器成本 ——> 延伸出——>能否将这三种服务分别封装起来——>KVM虚拟化技术,实现了一个操作系统模拟多个操作系统/不同的运行时环境 随着技术发展——>虚拟化技术开销较大(例如:只 要运行一个py脚本,想要使用虚拟化方式实现,还需要安装一个操作系统,并不方便/合理) ——>延伸出容器技术 虚拟化层的抽象层(用户层)剥离,使用docker engine来替代(来宾操作系统去除),只要通过引擎就可以直接连接到宿主机操作系统中,极大减小了开销
一、全虚和半虚
二、docker安装部署
1、关闭防火墙
2、安装依赖包
3、安装docker-ce社区版
4、开启docker
5、设置镜像加速
6、网络优化
7、相关命令
8、用于显示docker的系统级信息,比如内核,镜像数,容器数
9、这里引申一些配置文件的内容(面试题)
三、docker镜像相关操作
1、运行镜像
2、搜索镜像
3、下载镜像-pull
4、查看镜像
5、查看当前docker下的镜像详细信息
6、添加镜像标签
7、删除镜像
Docker rm ** 删除容器ID
Docker rmi 镜像名称/镜像标签
Docker rmi hello-world:mjh
8、镜像导出/导入
远程传输
验证
四、容器相关操作
1、查询容器
2、删除容器
3、启动运行容器
4、启动一次性运行容器
5、持续后台运行
6、停止容器
7、进入/退出容器
7.1、使用run
Docker run -itd --name 名字 --privileged=true centos /sbin/init
在容器内下载httpd
Docker inspect mjh/test3/test4
7.2第二种进入容器
8、容器导入/导出
9、容器导入(生成镜像)
10、删除/强制删除容器
第一种
第二种:正则匹配删除
第三种:删除非UP状态的rm -f 强制删除所有
第四种:批量删除exit状态的容器
总结
1、查看docker版本docker -v
2、用于显示docker的系统信息,比如内核、镜像数、容器数docker info
3、运行镜像docker run hello-world 运行hello-world镜像
4、搜索镜像search
docker search nginx 搜索镜像nginx
docker search centos:7 搜索镜像centos:7
5、下载镜像pulldocker pull nginx(镜像名称)
6、查看镜像docker images 查看镜像列表
docker images -q 查看镜像过滤id
7、查看当前docker下的镜像详细信息 获取镜像信息
docker inspect 镜像id
8、添加镜像标签
docker tag hello-world:latest hello-world:自定义名称
9、删除镜像
docker rm 容器ID
docker rmi 镜像ID
docker rmi hello-world:自定义名称
10、镜像导出/导入
docker save -o 文件名镜像名
scp hello-world root@192.168.199.136:/opt
docker load < hello.world
11、容器相关操作docker ps -a 显示所有的容器,包括未运行的 a:all
docker ps -aq 查看容器的id q:代表过滤,只过滤容器id
12、删除容器docker ps -aq
强制批量删除容器,不建议使用,若需要删除筛选出id进行删除
13、启动运行容器docker create -it nginx:latest /bin/bash -i:让容器的标准输入保持打开 -t:分配一个伪终端 -d:后台守护进程的方式进行
14、启动容器docker start
15、启动一次性运行容器
docker pull centos:7
docker run centos:7 /usr/bin/bash -c ls
16、持续后台运行
docker run -d centos:7 /usr/bin/bash -c “while true;do echo hello;done”
17、停止容器
docker stop 容器ID
18、进入/退出容器
docter run -tid -name 名字 --privileged=true centos /sbin/init
19、docker exec -it 容器id /bin/bash
20、删除
第一种:docker rm 容器ID
第二种:正则匹配删除 docker ps -a | awk ‘{print "docker rm " $1 }’ | bash
第三种:删除非UP状态的rm -f 强制删除所有 docker rm -f docker ps -q
第四种:批量删除exit状态的容器 for i docker ps -a | grep -i exit | awk '{print $1}'
; do docker rm -f $i ;done
21、docker stats 容器查看当前资源消耗信息状态
22、导入容器 docker import 导出文件名 指定镜像名称
23、导出容器 docker export 容器ID > 文件名