Docker技术。目录:1.什么是Docker2.理解Docker3.走进Docker4.Hello World5.Nginx服务6.docker化的java web。1.什么是Docker?2.Docker思想。集装箱 运输方式标准化 存储方式隔离 API接口3.Docker解决了什么问题?我本地运行没问题啊!系统好卡,哪个哥们又写死循环了?双11来了,服务器撑不住啦!4.走进Docker。镜像(集装箱),仓库(超级码头),容器(运行程序的地方)。Build构建镜像,Ship运输,Run运行容器。Docker镜像。(一系列的文件)Docker容器。(本质就是一个进程)Docker仓库。(hub.docker.com、c.163.com)5.window下安装Docker。http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ (下载地址)http://pan.baidu.com/s/1qYyc0ag (boot2docker.iso下载地址)https://c.163yun.com/hub#/m/home/ (查看镜像的地址。)6.第一个docker镜像。(hello-world)docker pull [OPTIONS] NAME[:TAG]docker images [OPTIONS] [REPOSITORY [:TAG]]docker run [OPTIONS] IMAGE [:TAG] [COMMAND] [ARG...]docker ps (查看镜像运行的进程)docker pull hello-world (下载hello-world镜像)docker images (查询本地的镜像)docker version (查询docker的版本)docker run hello-world (运行镜像)7.运行一个nginx镜像。(nginx)持久运行的容器;前台挂起&后台运行;进入容器内部。下载地址:docker pull hub.c.163.com/library/nginx:latest运行nginx:docker run hub.c.163.com/library/nginx (前台运行)docker run -d hub.c.163.com/library/nginx指定端口运行docker run -d -p 8080:80 hub.c.163.com/library/nginx (指定端口8080,80)docker run -d -P hub.c.163.com/library/nginx (随机端口)docker ps 可以查看到nginx运行的container的iddocker exec -it 容器id (进入容器里面,类型linux目录) bashexit (退出容器)docker stop 容器id8.Docker网络。网络类型:Bridge Host None端口映射:查看端口是否被监听:netstat -na|grep 80809.制作自己的镜像Dockerfiledocker buildJpress: http://jpress.io/Dockerfile文件:from hub.c.163.com/library/tomcat (是以tomcat为一个起点)MAINTAINER llsydn 1091391667@qq.com (镜像所有者)COPY D:/ddmh-1.0.0.jar /usr/local/tomcat/webapps (运行命令)然后执行docker build -t (镜像的名称) . ( . 的作用是将本目录下的所有文件传递给docker容器)Dockerfile语法:from base imagerun 执行命令add 添加文件copy 拷贝文件cmd 执行名称expose 暴露端口workdir 指定路径maintainer 维护者env 设置环境变量entrypoint 容器入口user 指定用户volume mount point特别注意:每次启动Docker Quickstart Terminal的时候,一开始会告诉我们docker is configured to use the default machine with IP 192.168.99.100(xxx.xxx.xx.xxx)所以要访问docker里面启动的服务的时候,需要用这个ip去访问对应的应用。10.安装mysql步骤。10.1下载mysql的镜像:docker pull hub.c.163.com/library/mysql:latest10.2启动mysql:docker run -d hub.c.163.com/library/mysql。注意,这样的启动,再打印docker ps是找不到该进程的,因为启动报错了。可以使用docker logs -f 容器id,会出现以下错误:error: database is uninitialized and password option is not specified You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD,这里会提示我们要给定MYSQL_ROOT_PASSWORD,root用户的密码。所以启动命令是: docker run -e MYSQL_ROOT_PASSWORD=xxxxxx --name MySQL -d hub.c.163.com/library/mysql