docker笔记

docker基础
概念:docker是一个开源的应用容器引擎。


系统发展趋势:实体->虚机->容器
 
	实体机:[应用代码+依赖库+kernel+硬件]
 
	虚拟机:[应用代码+依赖库+kernel] + [硬件+虚拟化]
 
	容器:[应用代码+依赖库] + [kernel+容器引擎] + [硬件]
 
	[应用代码+依赖库] 即 镜像。镜像经过某些处理后,即成为容器。



镜像:
	Dockerfile:

		说明:用于生成docker的image的配置文本文件。http://www.dockerinfo.net/dockerfile介绍

		举例:
			# 基于已有的docker image来生成镜像。
			FROM tomcat:7.0
			# 对已有的docker image镜像进行修改。
			ADD myDeploy.sh /
			# 容器启动后执行的命令。
			ENTRYPOINT sh myDeploy.sh


镜像操作命令:

	docker -v 		# 查看docker版本

	docker images
		说明:查看所有的镜像。

	docker pull
		说明:从远程仓库(registry)下载镜像。  
		举例:docker pull xxx https://hub.docker.com

	docker rmi
		说明:删除镜像
		格式:docker rmi 镜像id 	或 	docker rmi 镜像名:tag

	docker save / docker load
		概念:导出镜像 / 导入镜像
		说明:当需要把一台机器上的镜像迁移到另一台机器的时候,我们就需要用到save和load命令。
		导出格式:docker save 镜像名:tag > xxx.tar.gz
		导入格式:docker load < 导出的镜像文件压缩包
		举例:
			docker save mysql:5.6 > /data/docker/images/mysql56.tar.gz
			docker load < /data/docker/images/mysql56.tar.gz

	docker build
		概念:创建镜像
		格式:docker build 参数 镜像名:tag .
		参数:
			-t 	指定镜像名和tag
			.	表示使用当前目录下的Dockerfile文件。注:Dockerfile文件 和 dockerfile文件都可以。
		举例:docker build -t jxntomcat:2.0 .
	
		

docker常用命令:

	docker run 
		格式:docker run 参数 镜像名:tag [COMMAND] [ARG...]
		参数:
			--help				查看命令的帮助文档
			-e 					设置环境变量
			-d 					后台运行
			-i 					打开STDIN,用于控制台交互
			-p, --publish=[] 	指定容器暴露的端口(Publish a container's port(s) to the host),格式:Host端口:容器端口
									注意:-p, --publish=[]中的[]表示该参数可以出现多次
									举例:暴露多个接口:docker run -itd --name 容器名称 -p 主机端口1:容器端口1 -p 主机端口2:容器端口2 镜像名:tag
			-t 					分配一个虚拟终端(pty)。补充:tty(终端设备的统称)、pty(pseudo-tty虚拟终端)
			-v					容器内目录与宿主机目录共享,格式:Host路径:容器路径
			--name				设置容器名称
			--restart=always	被终止后会自动重启	
			--link


		举例:docker run -itd --name 容器名称 -p 主机端口:容器端口 镜像名:tag 		# 注:tag为latest时可省略

		说明:验证容器是否正常启动:curl 127.0.0.1:主机端口


	docker stop
		举例:
			docker stop 容器id或容器名称


	docker kill 容器id

	docker rm
		参数:
			-f 强行删除容器
		举例:
			docker rm -f 容器名称


	docker ps
		参数:
			-a 	显示所有的容器,包括未运行的容器。
		结果:
			CONTAINER ID 	容器id
			IMAGE 			镜像名:tag
			COMMAND			
			CREATED			创建时间
			STATUS			容器的状态
			PORTS			容器暴露的端口
			NAMES			容器的名称


	docker exec
		说明:在运行的容器中执行命令
		格式:docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
		参数:
		举例:
			# 查看docker中正在运行的某个容器下的目录结构
			docker exec -it 容器id /bin/bash


	docker cp
		说明:用于容器与主机之间的数据拷贝
		举例:
			docker cp 主机目录 容器名称:容器目录
			docker cp 容器名称:容器目录 主机目录

	docker logs
		说明:查看容器的日志
		格式:docker logs [OPTIONS] CONTAINER
		参数:
			-f, --follow		跟踪实时日志
			-t, --timestamps	显示时间戳
		    --since string		显示自某个timestamp之后的日志,或相对时间(eg:30m)
		    --until string		显示自某个timestamp之前的日志,或相对时间(eg:30m)
		    --tail  string		从日志末尾显示多少行日志, 默认是all
		举例:
			# 查看指定时间之后的日志,只显示最后50行
			docker logs -f -t --since="2019-01-01" --tail=50 容器名称
			# 查看最近30分钟的日志
			docker logs --since 30m 容器名称	
			# 查看某时间段日志
			docker logs -t --since="2019-01-01T17:27:37" --until "2019-01-01T19:27:37" 容器名称


	docker start


	docker stop 





















docker数据存储方式:

默认容器的数据是保存在容器的可读写层,当容器被删除时其上的数据将会丢失,所以为了实现数据的持久性则需要选择一种数据持久技术来保存数据,当前有以下几种方式


Volumes
Bind mounts

		


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值