1、能干嘛
开发 运维
2、是什么
容器运行载体或者管理引擎
3、三要素:
镜像:模板
容器:利用镜像创建的运行实例,可以理解为简易版linux+运行程序
仓库:集中存放镜像文件的场所
4、安装
(1)centos6.5以上,建议用centos6.8或者centos7.0
(2)命令
centos6.8安装
1.yum install -y epel-release
2.yum install -y docker-io
3.安装后配置文件/etc/sysconfig/docker
4.启动后台服务:server docker start
5.验证安装完成:docker version
centos7.0安装
按照官网安装:
https://docs.docker.com/install/linux/docker-ce/centos/#upgrade-docker-after-using-the-convenience-script
5、阿里云镜像加速
(1)注册阿里云账号
(2)获取镜像加速地址
(3)配置镜像加速器
centos6.8配置文件修改(vi /etc/sysconfig/docker)
other_args="--registry-mirror=https://自己账号加速信息.mirror.aliyuncs.com"
重启服务
server docker restart
验证配置成功与否
ps -ef|grep docker
centos7.0++配置文件修改(vi /etc/sysconfig/docker)
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://自己账号加速信息.mirror.aliyuncs.com"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
6、helloworld
docker run hello-world
(1)本地去找镜像
(2)有的化实例化镜像生成容器并运行
(3)没有的化去配置的镜像阿里云去pull
7、运行底层原理
CS结构
docker比虚拟机优势:
(1)docker有着比虚拟机更少的抽象层
(2)docker利用的宿主机的内核,而不需要Guest OS
8、docker帮助
docker version
docker info
docker --help
9、docker 镜像命令
docker images [option] //列出本地镜像
option:
-a:列出本地所有镜像(含中间镜像层)
-q:只显示当前镜像ID
--digests:显示镜像摘要信息
--no-trunc:显示镜像完整信息
docker search [option] 某个镜像名字 // 查找镜像
option:
-s:列出收藏数不小于指定值的镜像 docker search -s 30 tomcat
--no-trunc:显示镜像完整信息
--automated:只列出automated build类型的镜像
docker pull 某个镜像名字 //拉取镜像,可以指定版本docker pull tomcat:3.2
docker rmi [option] 某个镜像名字 //删除镜像
option:
-f:强制删除
docker rmi -f hello //删除一个
docker rmi -f hello nginx //删除多个
docker rmi -f $(docker images -qa) //全部删除
10、docker 容器命令
docker pull centos //拉取centos
(1)新建并启动容器
docker run [option] image [command] [arg...]
option:
--name="容运器新名字":为容器指定一个名称
-d:后台运行容器并返回容器id,也即启动守护式容器
-i:以交互模式运行容器,通常与-t同时使用
-t:为容器重新分配一个伪输入终端,通常与-i同时使用
-P:随机端口映射
-p:指定端口映射
(2)列出正在运行的容器
docker ps [option]
option:
-a:列出当前所有正在运行的容器+历史运行过的
-l:显示最近创建的容器
-n:显示最近n个创建的容器
-q:静默模式,只显示容器编号
--no-trunc:不截断输出
(3)退出容器
exit // 容器退出
ctrl+P+Q //容器不重新退出
(4)启动容器
docker start 容器id或者容器名
(5)重启容器
docker restart 容器id或者容器名
(6)停止容器
docker stop 容器id或者容器名
(7)强制停止容器
docker kill 容器id或者容器名
(8)删除已经停止的容器
docker rm 容器id //删除单个
docker rm -f $(docker ps -a -q) //批量删除
docker ps -a -q|xargs docker rm //批量删除
(9)重要
1.启动守护式容器
docker run -d 容器名
2.查看容器日志
docker logs [option] 容器id
option:
-t:加入时间戳
-f:跟随最新的日志打印
--tail:数字显示最后多少条
3.查看容器内运行的进程
docker top 容器id
4.查看容器内部细节
docker inspect 容器id
5.进入正在运行的容器并以命令行交互
docker exec -it 容器id //在外边对容器远程操作
docker attach 容器id //重新进入
上述两个区别:
attach 直接进入容器启动命令终端,不会启动新的进程
exec 是在容器中打开新的终端,并且可以启动新的进程
6.从容器内拷贝文件到主机
docker cp 容器id:容器内路径 宿主机路径
11、镜像原理
是什么?
轻量级、可执行独立软件包,用来打包软件运行环境和基于运行环境开发的软件,包括运行某个软件所有的内容,包括代码、运行时、库、环境变量和配置文件
(1)unionFS(联合文件系统)
(2)镜像加载原理
bootfs
rootfs
(3)分层的镜像
(4)为什么选用分层
共享资源
(5)特点
只读
新层在旧层之上
12、镜像commit
docker commit 提交容器副本使之成为一个新的镜像
docker commit -m="提交的描述信息" -a="作者" 容器id 要创建的目标镜像名:[标签名]
案列:
docker run -it -p8888:8080 tomcat //指定端口
docker run -it -P tomcat //随机端口
docker exec -it id /bin/bash //进入镜像
rm -rf docs //删除docs文件
docker commit -a "zzu" -m="del doc" 10basdas21 atgfuigu/mytocat:1.2 //提交修改过的副本
docker run -it -p7777:8080 atgfuigu/mytocat:1.2 //运行