尚硅谷Docker核心技术
2020-03-13 18:16 cascle 阅读(460) 评论(0) 编辑 收藏 举报一.简介
拷贝环境,和代码一同部署
1.镜像技术
2.虚拟化容器技术
解决了运行环境和配置文件的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术
LXC:不会模拟完整操纵系统,只包含必须的配置文件和库。轻量级容器,更快更便捷占用资源少不需要模拟硬件仅仅是隔离
二.三要素
镜像:模板
容器:实例
仓库:保存镜像
三.安装
CentOs:6.5以上版本
6.8版本:
yum install -y epel-release
yum install -y dockr-io
配置文件位置:/etc/sysconfig/docker
service docker start
docker version验证:docker version
7:
按照官网文档安装
systemctl start docker启动docker
四.阿里云镜像加速
镜像仓库镜像
dev.aliyun.com,查找符合系统的镜像加速器配置docker
ps后可以看见docker带镜像仓库参数
五.helloworld镜像
docker run hello-world
六.底层运行原理
CS架构
七.帮助命令
docker version:版本号
docker info:docker描述
docker --help:打印帮助
docker 【options】command 【args】
docker comand --help:子命令帮助
八.镜像命令
docker images:列出本地镜像
REPOSITORY:TAG来定义某个版本的镜像
options:
-a:所有镜像,包括中间镜像
-q:只显示id
--digests:摘要信息
--no-trunc:ID完整信息
docker search 《镜像名》:在网站上查找镜像
options:
--no-trunc:完整信息
-s:只列出标🌟不少于多少的镜像
--automated:只列出automated编译的镜像
dockek pull《镜像名称》:下载镜像
docker rmi 《镜像名称》:删除镜像
删除单个:-f,强制删除
删除多个:用空格间隔镜像名称
删除全部:$(images -qa)
docker tag:给image命名加版本号
docker history:创建image时提交记录
九.容器命令
新建容器并启动:
docker run 【options】Image 【commands】 【args】
Options:
--name="":容器名字
-d:守护式容器
-i:交互式容器
-t:重新分配一个伪终端,进入镜像里
-P:随机端口映射
-p:指定端口映射。ip:hostPort:containerPort。一定要有containerPort
docker -it Image
docker ps 【options】:
列出docker里在跑的容器
options:
-a:所有正在运行或者曾经运行过的容器
-l:最近创建的容器
-n:最近n个创建的容器
-q:安静模式
--no-trunc:无截断
退出容器:
exit:容器死掉
ctrl+p+q:容器活着
启动容器:
docker start 容器名字或者ID
重启容器:
docker restart
停止容器:
docker stop
强制停止容器:
docker kill
删除已停止容器:
docker rm 容器ID
删除多个容器:
docker -aq | xargs docker rm
docker rm $(docker -aq)
重要:
dockr run -d:容器退出,创建容器但是跑一下就退出
除非有前台一直在跑的进程,否则docker跑一下就退出
查看日志:
docker logs -f -t --tail ID
-t:时间戳
-f:跟随最新日志滚动
--tail:显示最后多少条
查看容器内运行的进程:
docker top ID
查看容器内部细节:
docker inspect
进入正在运行的docker容器,并以命令式交互:
docker exec -it ID bashShell:不用进入容器交互就执行命令
docker attach ID:进入容器
从容器拷贝文件到主机上:
docker cp 容器ID:路径 宿主机路径
命令有命令图
十.镜像
原理:
镜像是基于UnionFS,应用镜像可以以父环境镜像为基础
镜像是分层的
镜像是只读的,可写的是容器层
commit:
docker commit ID 新名字:【tag】 :提交容器副本,成为新的镜像
-m:描述信息
-a:作者
十一.容器卷
容器生成的数据用卷来存储。使用的时候挂载数据卷
V命令:
docker run -v 宿主机绝对目录:容器内目录
附加:ro是只读镜像,docker容器不能改,宿主机可以改
dockerfile里用VOLUME指令
VOLUME["",""]:指定容器里的挂载点,宿主机的点可以用inspect命令看到
-v后加--privileged=true,可以写
数据卷容器:
挂载数据卷的容器
--volumes-from:
十二.DockerFile
编写docker
直接docker build命令执行
解析过程:
1.每条指令要大写,至少跟随一个参数
2.从上到下执行
3.#为注释
4.每一条语句构建一个镜像层
关键字:
FROM:基于哪个镜像
MAINTAINER:维护者
RUN:构建时需要执行的命令
EXPOSE:暴露端口号
WORKDIR:默认工作目录
ENV:构建时的环境变量
ADD:拷贝+解压缩文件到镜像
COPY:拷贝文件到镜像,copy["src","dst"], copy src dst
VOLUME:容器数据卷
CMD:容器启动时,要执行的命令。多个CMD命令只有最后一个生效
shell格式:cmd 参数1
exec格式:cmd [“命令”,“参数1”]
参数列表格式:[“参数1”],给ENTRYPOINT指令提供参数
ENTRYPOINT:追加的启动时运行的命令,不会被替代
ONBUILD:触发器,父镜像被继承时父镜像的onbuild命令被执行
分三类命令,BUILD,RUN,BOTH
USER:指定哪个用户编译/执行这个dockerfile
.dockerignore文件:忽略文件不打包
十三.安装镜像
1.搜索镜像
2.拉取镜像
3.查看镜像
4.启动镜像
5.停止容器
6.移除容器
运行mysql:
需要加特别参数 -e设定用户名和密码
十四.push到阿里云
1.服务器创建命名空间
2.参考aliyun命令,推送镜像
十五.