docker容器

docker容器的相关操作

操作容器命令格式:docker 命令【选项】
1、查看docker引擎中运行有哪些容器

	docker ps  
	docker ps -a  包含停止的容器
	docker ps -q  查看容器的id

	(容器id)  (基于那个镜像运行)(容器内启动的命令)  (容器创建时间)     (容器当前的状态)(容器内服务监听的端口)(容器名称)
	CONTAINER ID   IMAGE        COMMAND             CREATED          STATUS          PORTS   			NAMES
	d7bececae0e2   tomcat      "catalina.sh run"   46 seconds ago   Up 45 seconds   8080/tcp   		vibrant_rubin

2、如何运行一个容器

	docker run 镜像名 / 镜像id
	
	简单运行:docker run tomcat:8.0 
	跑在自己的操作系统 外界根本访问不到。

	运行tomcat容器,同时设置容器与宿主机(dokcer引擎所安装的这个机器,就是linux机器)端口的映射关系   -p   建立映射
	
	docker run -p 8080(宿主机): 8080  tomcat:8.0
	
	这是再去访问宿主机的8080端口,就会直接去访问容器的8080端口。可以映射多个端口
	访问		192.169.1.29:8080  就会跳出tomcat的页面,
	docker在启动服务时,他会把这个8080端口利用防火墙加入到防火墙的开放的列表端口里边。不需要关闭网络防火墙

在这里插入图片描述
这个ports 前边代表的是宿主机的8080端口,映射到 容器内部的 8080端口,可以映射多个端口
docker run -p 8081: 8080 tomcat:8.0
docker run -p 8082: 8080 tomcat:8.0
docker run -p 8083: 8080 tomcat:8.0
3、运行tomcat,开放映射端口,后台启动服务 -d 已守护进程使用

	docker run -p 8080:8080 -d tomcat:8.0

4、运行tomcat容器,开放端口映射,后台启动改服务,指定容器名称 --name [容器名称]

	docker -d -p 8080:8080 --name tomcat01 tomcat:8.0		

5、停止、重启、暂停、恢复容器

	docker stop     容器id/名称     停止
	docker restart  容器id/名称	   重启
	docker start    容器id/名称     启动
	docker pause    容器id/名称     暂停
	docker unpause  容器id/名称     恢复,恢复暂停的容器

6、删除容器

	docker rm 容器id/名称      只能删除已经停止的容器
	docker rm -f  容器id/名称  强制删除,无论容器在运行,也可以运行
	docker rm -f $(docker ps -qa)  删除所有的容器

7、查看容器内部日志

	docker logs 容器id/名称
	docker logs -f 容器id/名称		-f 实时的显示容器日志
	docker logs -f -t 容器id/名称		-t 显示时间

8、进入容器内部

	docker exec(代表执行的意思) -it(交互模式)  容器id/name  bash 
	exit   退出容器

9、容器与宿主机操作系统之间的文件拷贝

	a、如何将容器内部中指定的文件和目录拷贝到宿主机:
	docker cp 容器id:容器中的文件或目录  宿主机的目录
	docker cp b847:/usr/local/tomcat/RUNNING.txt /root   将b847容器内部的路径下文件拷贝到 root目录下

	b、如何将宿主机的指定目录和文件拷贝到容器内
	docker cp   宿主机的目录  容器id:容器中的文件或目录

10、查看容器内运行指令

	查看容器内部运行进程
	docker top 容器id/name

	查看容器内部细节指令
	docker inspect 容器id/name

11、容器数据卷机制 Volume

	数据卷 Data volume 
	作用:用来实现容器中数据和宿主机中数据进行映射的,相互同步,对于容器中某个目录的改变会直接影响到宿主机中某个目录的改变,任何一个有变化都会相互同步
	注意事项:数据卷的使用必须在容器首次启动时设置
	使用:docker run -v 宿主机目录:容器内目录  -v 宿主机目录:容器内目录 .....    可以设置多个
		
		使用绝对路径设置数据卷:
		docker run -v 宿主机绝对路径:容器内路径:ro ....
		docker run -d -p 8081:8080 --name tomcat01 -v /root/apps/:/usr/local/tomcat/webapps:ro tomcat:8.0
			将宿主机的/root/apps/目录与容器内部路径/usr/local/tomcat/webapps 相互同步
			ro:readyonly 如果在设置数据卷时指定ro,代表日后容器内部路径是只读的,容器内部的文件无法修改
		注意:这种方式会将容器路径的原始内容全部清空,始终以宿主机的路径为主
		
		使用别名的方式设置数据卷:
		docker run -v aaaa:/usr/local/tomcat/webapps ....
		docker run-d -p 8082:8080 --name tomcat03 -v aaaa:/usr/local/tomcat/webapps tomcat:8.0
			aaaa:代表docker数据卷中别名,这个别名如果存在docker直接使用,不存在自动创建
			     使用别名方式会保留容器内路径的的原始内容,前提是别名路径不能存在内容
			     
	    docker根据别名创建的目录默认在		/var/lib/docker/volumes/

12、将容器打包成一个新的镜像 commit

	将正在运行的容器,打包成一个镜像。基于容器直接构建的,下次不需要在部署,直接启动镜像就是一个项目。

	容器是可读可写的,基于这个特性 我们就可以对容器进行自己的深度定制,将修改的容器打包成一个新的镜像,日后基于这个镜像运行成容器,存在原始定制特性

	commit:用来把容器提交成一个新的镜像
	docker commit -m "描述信息”-a"作者信息” (容器id或者名称) 打包的镜像名称: 标签

13、镜像的备份和恢复

	镜像备份:docker save 镜像名:Tag  -o  xxx.tar
			docker save tomcat:80 -o tomcat-8.0.tar
			
    镜像还原:docker load -i tomcat-8.0.tar

你可能感兴趣的:(docker,docker)