Docker学习笔记

Docker初体验,原理+部署web应用

Posted by TenzT on August 1, 2018

什么是Docker?

  • 就是个软件容器
  • Docker思想
    • 集装箱:模仿“虚拟机”
    • 标准化:运输方式,存储方式,接口
    • 隔离:基于Linux内核,进行资源分组

解决什么问题?

  • 程序及其运行环境同时移植

Docker核心技术

  • 核心:
    • 镜像:应用程序、运行环境的文件。核心是UnionFS(分层文件系统),将不同目录挂载到同一虚拟机下
    • 容器(运行程序的地方):本质就是一个进程,相当于一个虚拟机,不过文件系统是分层的。
    • 仓库(超级码头) :相当于repository
  • 流程:从仓库拉一个镜像到本地执行
  • 国内常用的仓库:hub.c.163.com

docker网络隔离

  • Brige模式(默认):获得独立的namespace,端口映射
  • Host模式:和主机共同使用一个namespace
  • None:没有网络

制作自己的镜像

  • Dockerfile:怎么做docker镜像的文件

指令

docker images:查看有哪些镜像
docker pull 名字[:tag] :拉取镜像到本地
docker run [OPTIONS] IMAGE[:TAG][COMMAND][ARG]:运行镜像
docker ps :看docker进程
docker exec :向运行中的container执行一个命令
docker run -d -p 8080:80 nginx:启动nginx,容器端口80映射到主机端口8080

docker stop $(docker ps -a -q) :停止所有container
docker rm $(docker ps -a -q) :删除所有container
docker rmi <image id> :删除相应id的docker镜像
docker built -t 镜像名 . :在当前目录创建镜像

实验

编写Dockerfile:

from hub.c.163.com/library/tomcat
  
COPY SSM.war /usr/local/tomcat/webapps