docker作为容器话管理的工具,简化了开发和运维的很多工作,其中docker核心包括几部分:
镜像(images):docker镜像就好比是一个模板,可以通过模板创建容器服务,tomcat进行--》run--》tomcat容器(提供服务),
通过这个镜像可以创建出多个容器(最终服务运行或者项目运行就在容器中)
容器(container):docker利用容器技术,独立运行或一组运行,通过镜像来创建的
启动,停止,删除,基本命令
仓库(repository):仓库就是存放镜像的地方,仓库分为公有仓库和私有仓库
底层原理:docker是一个Client-Server结构的系统 ,dockerServer守护进程运行在主机上,通过Socket从客户端访问,
DockerServer接受到Docker-Client的指令,就会执行这个命令(和redis很相识)
docker的命令总结:
帮助命令:
docker 命令 --help
镜像命令:
docker images 查看所有镜像
docker images -q 显示镜像的id
docker search 搜索 docker search mysql(搜索mysql镜像)
docker pull 下载 docker pull mysql(下载mysql镜像) docker pull mysql:5.7(按版本下载)
docker rmi -f id 根据id删除镜像
docker rmi -f $(docker images -aq)删除所有镜像
容器命令:
我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习
启动并进入容器:
docker run -it centos /bin/bash (相当于进去了一个小的虚拟机)
exit 退出并关闭容器(从容器退出并进入主机)
ctrl+p+q 退出不关闭容器(快捷键)
docker ps 查看所有运行的程序 docker images 是查看所有的镜像
docker ps -a 查看曾经运行的容器
docker ps -aq 查看所有运行容器的id
docker rm 容器id 删除容器
docker rm -f $(docker ps -aq)删除所有的容器
docker start 容器id 启动容器
docker restart 容器id 重启容器
docker stop 容器id 停止当前正在运行的容器
docker kill 容器id 强制停止
docker logs -tf --tail 10 容器id
docker 启动 nginx(以后台的方式):
docker run -d --name nginx01 nginx (如果启动多台name有加名字)
docker run -d --name tomcat01 -p 3355:8080 tomcat
如何提交自己的镜像: commit镜像
命令和git原理类似
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:【tag】
docker容器数据卷
具名和匿名挂载:
匿名挂载: -v容器内路径
docker run -d --name nginx01 -v /etc/nginx nginx
查看所有的valume的情况 docker volume ls
-v 容器内路径 匿名挂在
-v 卷名:容器内路径 具名挂在
-v /宿主机路径:容器内路径 指定路径挂载
dockerfile:
dockerfile就是用来构建docker镜像的构建文件,命令脚本
dockerfile的指令:(写脚本)
FROM:基础镜像,一切冲这里开始
MAINTAINER:镜像是谁写的 姓名+邮箱
RUN:镜像够键时需要运行的命令
ADD:步骤,tomcat镜像,这个tomcat是个压缩包,添加内容
WORKDIR:镜像的工作目录
VOLUME:挂载的目录
EXPOSE:保留端口配置
CMD:指定这个容器启动时候要运行的命令,只有最后一个会生效,可被代替
ENTRYPOINT:指定这个容器启动时候要运行的命令,可悲追加
ONBUILD:当构建一个被继承dockerfile,这个时候会运行ONBUILD的指令,出发指令
COPY:类似ADD,将我们文件拷贝到镜像中
END:构建的时候设置环境变量