码迷,mamicode.com
首页 > 其他好文 > 详细

docker practice

时间:2018-05-17 00:55:59      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:author   ubunt   war   cti   上下   容器管理   user   rac   serve   

Docker三个基本概念:

镜像Image:分层存储Union FS,静态不变;Ubuntu/Debian有UnionFS较优,而CentOS/RHEL只有devicemapper,loop-lvm、direct-lvm都较差,/var/lib/docker还会不断增大(删除镜像也没用)

容器Container:运行镜像时再封装容器存储层,容器可以创建、启动、停止、删除、暂停等,持久化数据应使用数据卷Volume、或绑定宿主目录

仓库Repository:user/image:tag,user默认library,tag默认latest,常用服务有hub.docker.com、quay.io,国内:daocloud.io,私服有Nexus

 

镜像补丁:

docker run --name webserver -d -p 80:80 nginx # 访问 http://localhost
docker exec -it webserver bash  # 修改 /usr/share/nginx/html/index.html
docker diff webserver # 查看有哪些变化,容器停止后会丢失修改;缺点:变化太多,暗箱操作,镜像臃肿
docker commit --author "name <email>" --message "vi index.html" webserver nginx:v2 # 保存容器为新镜像 nginx:v2
docker history nginx:v2 # 查看 nginx:v2 历史
docker run --name web2 -d -p 81:80 nginx:v2 # 运行新镜像

镜像定制:scratch,特殊空白镜像,是个虚拟概念,并不实际存在;swarm、coreos/etcd等不以系统为基础,直接复制可执行文件,因此镜像极为小巧,go语言特别适合容器微服务架构

FROM nginx
RUN echo <h1>Hello, Docker!</h1> > /usr/share/nginx/html/index.html
docker build -t nginx:v3 . # 构建镜像,最后的点是指定上下文,COPY ./package.json /app/,是从上下文来查找package.json文件

服务类:nginx、redis、mongo、mysql、httpd、php、tomcat;语言类:node、openjdk、python、ruby、golang;系统类:ubuntu、debian、centos、fedora、alpine

RUN有两种格式:RUN cmd,RUN ["exe", "arg1", "arg2"],每个RUN都会增加一层,docker限制127层(曾经是限42层),多个命令可以&&串联

FROM ubuntu:16.04
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
ENTRYPOINT [ "curl", "-s", "http://ip.cn" ]  # CMD [ "curl", "-s", "http://ip.cn" ] CMD表示容器启动时执行命令,而ENTRYPOINT会将CMD当作参数
docker run myip -i # 对于CMD会被-i覆盖而报错,而ENTRYPOINT则会附加参数-i
VOLUME /data # 匿名卷,写入时不进入容器存储层,从而保证容器存储层的无状态化
docker run -d -v mydata:/data xxxx # 挂载宿主目录,数据持久化

 

容器管理

docker attach cli  # exit退出会导致容器停止
docker exec -it cli bash # exit退出容器不会停止,-it表示有tty交互界面
docker rm -f $(docker ps -qa) # 停止所有运行容器,然后删除
docker conotainer prune # 删除所有已停止的容器

 

docker practice

标签:author   ubunt   war   cti   上下   容器管理   user   rac   serve   

原文地址:https://www.cnblogs.com/xingqi/p/9048064.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!