docker笔记1,docker简介、安装,镜像

docker思想

以前项目部署都是项目打包部署,而docker则是整体环境一起打包。就如果之前是搬家,现在是移楼,整栋搬家。
docker镜像的设计,使得docker得以打破过去【程序即应用】的观念。透过镜像(images)将作业系统核心除外,运作应用程式所需要的系统环境,由下而上打包,达到应用程式跨平台间的无缝接轨运行,类似java虚拟机一样,一处编译处处使用。
docker是基于Go语言实现的云开源项目。一次封装,到处运行
docker三要素:仓库、镜像、容器
docker解决运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。
devops:开发自运维
使用docker的好处:
一次构建,随处运行:
1)更快速的应用交付和部署
2)更便捷的升级和扩缩容
3)更简单的系统运维
4)更高效的计算资源利用
更轻量:基于容器的虚拟化,仅包含业务运行所需的runtime环境,CentOs/ununtu基础镜像仅170M,宿主机可部署100-1000个容器
更高效:无操作系统虚拟化开销
- 计算:轻量,无额外开销
- 存储:系统盘aufs/dm/overlayfs;数据盘volume
- 网络:宿主机网络,NS隔离
更敏捷、更灵活:
- 分层的存储和包管理,devops理念
- 支持多种网络配置
官网:www.docker.com
仓库:https://hub.docker.com/ 一般也用不到,国外网站慢,公开仓库用 阿里云,网易云
安装环境:
centOs6.5以上的版本,系统内核2.6.32-431以上,64位
docker利用容器独立运行的一个或一组应用。容器是用镜像创建的运行实例
可以把容器看做是一个简易版的linux环境
仓库(Repository)是集中存放镜像文件的场所。
仓库注册器:注册多个仓库。

docker的安装

centos6.8安装:
1)yum install -y epel-release
2) yum install -y docker-io
3)安装后的配置文件:/etc/sysconfig/docker
镜像加速配置:other_args="–registry-mirror=https://x1l71zu9.mirror.aliyuncs.com"
检查是否生效:ps -ef|grep docker
4)启动docker后台服务:service docker start
5) docker version验证
centos7安装:
访问:https://docs.docker.com/install/linux/docker-ce/centos/
参考地址:https://blog.csdn.net/laughing1997/article/details/84305615
为什么使用加速器,由于国外网站下载速度慢,所以阿里云相当于拷贝了一份gub.docker.com上面的镜像
阿里云镜像加速
注册一个属于自己的阿里云账号
获得加速器地址连接:登录阿里云开发者平台 获取加速器地址
https://x1l71zu9.mirror.aliyuncs.com (这个地址是我自己的。每个注册用户都会有,使用镜像加速地址就会将镜像下载到该地址的仓库中)
配置本机Docker运行镜像加速器
重新启动docker后台服务:service docker restart
Linux系统下配置完加速器需要检查是否生效
如果没有/etc/docker/daemon.json文件,可以使用下面命令,新建并编辑。
vim /etc/docker/daemon.json
重点帮助命令:docker --help
docker images: (可以理解为千层饼,一层一层的)
option参数说明:(docker images -a)
-a:列出本地所有的镜像(含中间映像层)
-q:只显示镜像id
–digests:显示镜像的摘要信息
–no-trunc:显示完整的镜像信息

结果各个选项说明
repository:表示镜像的仓库源
tag:镜像的标签
image id:镜像id
created:镜像创建时间
size:镜像大小
docker search [options] 某个镜像的名字(如:Tomcat)(-s 30 表示点赞数超过30的镜像列出来)
–no-trunc:显示完整的镜像描述
-s:列出收藏数不小于指定值的镜像
–automated:只列出automated build类型的镜像

docker pull 某个镜像的名字:[tag
docker rmi [options] 某个镜像的名字(或id)
-f 强制删除,即使在运行中的镜像
删除单个:docker rmi -f 镜像id
删除多个:docker rmi -f 镜像名1:tag 镜像名2:tag
删除全部:docker rmi -f $(docker images -qa)
docker run [options] 镜像id [command] [args…]
options说明(常用):有些是一个减号,有些是两个减号
–name=“容器新名字” :为容器指定一个名称
-d:后台运行容器,并返回容器id,也即启动守护式容器
-i:以交互模式运行容器,通常与-t同时使用
-t:为容器重新分配一个伪输入终端,通常与-i同时使用
-P:随机端口映射
-p:指定端口映射,有以下四种格式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
docker ps [options] :列出当前的容器内容
options说明:
-a:列出当前所有正在运行的容器+历史上运行过的
-l:显示最近创建的容器
-n:显示最近n个创建的容器比如 docker ps -n 3 ,
-q:静默模式,只显示容器编号
–no-trunc:不截断输出
exit:退出,容器停止退出
ctrl + p + q 退回到宿主机,不关闭容器
docker stop 容器id或容器名 :停止容器
docker kill 容器id或容器名 :强制停止容器
docker rm 容器id : 删除已停止的容器
一次性删除多个容器:
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm 表示docker ps -a -q查出来的参数传递给 xargs.也是删除全部
docker run -d centos 这种启动,会发现容器已经退出
注意:docker容器后台运行,就必须有一个前台进程,容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就会自动退出。
所以,解决方案是将你要运行的容器,在前台要运行。
例如使用:
docker run -d centos /bin/sh -c "while true;do echo hello wang;sleep 2;done"
这句话的意思是后台启动一个centos,然后前台一个死循环,每隔2s打印hello wang。这样前台就有一个进程,就不会自动退出了。
docker logs -f -t --tail 容器id
-t:是加入的时间
-f:跟随最新的日志打印
–tail:数字 显示最后多少条
查看容器内运行的进程
docker top 容器id
查看容器内部的细节
docker inspect 容器id
进入正在运行的容器并以命令交互:
docker exec -it 容器id bashShell(bashShell可写可不写,默认就是/bin/bash)
docker exec -t 容器id ls -l /tmp/,这种方式可以直接将结果返回到宿主机
重新进入docker attach 容器id
区别:attach 直接进入容器启动命令的终端,不会启动新的进程;exec是在容器中打开新的终端,并且可以启动新的进程。
从容器内拷贝文件到主机上:docker cp 容器id:容器内路径 目的主机路径
docker命令大全参考https://www.runoob.com/docker/docker-command-manual.html
Linux命令大全https://www.runoob.com/linux/linux-command-manual.html

docker镜像

docker镜像commit操作补充:
docker commit提交容器副本使之成为一个新的镜像
docker commit -m=“提交的描述信息” -a=“作者” 容器id 要创建的目标镜像名:[标签名]
docker run -it -p 8080:8080 tomcat
-p:主机端口:docker容器端口
-P 随机分配端口
-i:交互
-t:终端
docker run -d -p 8080:8080 tomcat :后台运行tomcat,不会退出容器的。

发布了31 篇原创文章 · 获赞 1 · 访问量 5673

猜你喜欢

转载自blog.csdn.net/wjs040/article/details/95167339