docker是为了解决运行环境和配置问题的软件容器,方便解决做持续集成并有助于整体发布的容器虚拟化技术
镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
Docker是一个C/S架构的
1)docker有着比虚拟机更少的抽象层
2)docker利用的市宿主机的内核,而不需要加载操作系统OS内核
docker pull [选项] [Docker Registey 地址[:端口号]/] 镜像名[:标签]
新建容器并启动
eg:docker run -d --name toccat-8080 -p 8080:8080 tomcat(容器内部名称)
-d:守护进程,–name:名称
docker run【可选参数】image
#参数说明
--name="Name" 容器名字 tomcat01 ...用来区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内存
-p 指定容器的端口 -p 8080
-p ip:主机端口
-p 主机端口(宿主机,外部访问的端口):容器端口(常用,内部的端口号)
-p 容器端口
容器端口
-P 随机指定端口
#测试,启动并进入容器
# docker run it centos /bin/base
#退出
#exit
列出运行的容器
列出运行的容器
docker ps 命令
#列出当前正在运行的容器
-a #列出当前正在运行的容器和历史运行过的容器
-n=?#显示最近创建的容器
-q #只显示容器的编号
退出容器
exit #容器停止并退出
ctrl+P+Q #容器不停止退出
删除容器
docker rm 容器id #不能删除正在运行的容器
docker rm -f $(docker ps -aq) #删除所有的容器
docker ps -a -qlxargs docker rm #删除所有的容器
启动和停止容器的操作
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止容器
docker kill 容器id #杀死容器
后台启动容器
#命令 docker run -d 镜像名!
/# docker run -d centos
#问题docker ps,发现centos停止了
#常见的坑,docker 容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
#nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了
查看日志
docker logs -f -t --tail 容器,没有日志
docker ps
-tf #显示日志
-tail number #要显示日志的条数
查看容器中进程信息ps
#命令 docker top 容器id
查看镜像的元数据
#命令 docker inspect 容器id
进入当前正在运行的容器(进去容器)
eg:docker exec -it 容器id bash
#通常使用后台进入
#命令
docker exec -it 容器id bashshell
#docker attach 容器id
docker exec #进入容器后开启一个新的终端
#docker attach
#ls -l
退出容器:
exit
从容器内拷贝文件到主机上(在宿主机和容器之间交换文件)
docker cp 容器id:容器路径 目的地路径 (可能会置前)
容器内部写东西
echo 'hello'
容器----类似于(对象)
镜像----类似于(类)
拉取镜像:docker pull nginx:latest
查看本地镜像:docker images
运行容器:docker run --name nginx-test -p 80:80 -d nginx