1. 安装dockerlinux
系统centos 7.2docker
yum -y install docker-ioshell
service docker startcentos
安装完毕后执行 docker version 或者docker info 查看docker 信息是否安装成功tomcat
2. 下载镜像bash
执行命令 docker search centos 查看centos的镜像资源, 选择一个镜像spa
执行 docker pull docker docker.io/centos 下载镜像, docker.io/centos 就是上条命令查询出来的镜像名rest
执行 docker images 查看咱们本地的镜像资源code
3.运行镜像进程
执行命令 docker run -it docker.io/centos /bin/bash , 意思是使用image建立container并进入交互模式, login shell是/bin/bash
docker start/stop/restart <container> :开启/中止/重启container
docker start [container_id] :再次运行某个container (包括历史container)
docker attach [container_id] :链接一个正在运行的container实例(即实例必须为start状态,能够多个窗口同时attach 一个container实例)
docker start -i <container> :启动一个container并进入交互模式(至关于先start,在attach)
docker run -i -t <image> /bin/bash :使用image建立container并进入交互模式, login shell是/bin/bash
docker run -i -t -p <host_port:contain_port> :映射 HOST 端口到容器,方便外部访问容器内服务,host_port 能够省略,省略表示把 container_port 映射到一个动态端口。
注:使用start是启动已经建立过得container,使用run则经过image开启一个新的container。
docker ps -a 查看全部往过启动过的容器
4.安装jdk
首先本地某路径如 /root 下存放了jdk 安装包 jdk-7u80-linux-x64.tar.gz
docker run -it -v /root:/root docker.io/centos /bin/bash , 启动一个镜像,并把本地/root 路径挂载到 镜像里的 /root路径下面, 而且进入交互模式
cd /usr/local/
tar zxf /root/jdk-7u80-linux-x64.tar.gz
ln -s jdk1.7.0_0 jdk
vi /etc/profile
exit 退出容器
exit退出容器会关闭容器,
docker.ip/centos 镜像并不包含咱们刚安装的jdk, 咱们要制做一个包含了jdk的镜像给之后使用
执行命令 docker commit e15e4ce2355 devil/jdk ,生成一个新镜像, 指定建立的new iamge来自于container id e15e4ce2355,此外还为新建的image定义一个组合devil/jdk
执行命令 docker run -it devil/jdk 就启动咱们刚制做的镜像了, 若是要正常退出不关闭容器,请按Ctrl+P+Q进行退出容器
5.环境变量
在容器里配置的jdk环境变量在每次docker run启动的时候不会生效,须要外面传递环境变量 ,如 docker run -it -e "JAVA_HOME=/usr/local/jdk" -e "PATH=$PATH:/usr/local/jdk/bin" devil/jdk2 /bin/bash
6.端口映射
若是咱们容器里启动了一个tomcat ,8080端口,想外面也能访问到容器的8080端口,须要启动的时候指定端口映射
如 docker run -it -p 8080:8080 -e "JAVA_HOME=/usr/local/jdk" -e "PATH=$PATH:/usr/local/jdk/bin" devil/jdk2 /bin/bash
7.后台启动
docker run -d -e "JAVA_HOME=/usr/local/jdk" -e "PATH=$PATH:/usr/local/jdk/bin" devil/jdk2 /usr/bin/supervisord
PS: docker run 要不就是-it 前段交互方式启动, 要不就是-d 后台运行,可是后台运行必须有一个一直挂起的进程 ,好比这里的/usr/bin/supervisord
Docker容器后台运行,就必须有一个前台进程.
容器运行的命令若是不是那些一直挂起的命令(好比运行top
,tail),就是会自动退出的
8.启动多个容器
咱们在已经启动了一个容器的基础上再启动一个容器,使用同一个镜像
docker run -it --name deviltest --link goofy_hypatia:tomcat -e "PATH=$PATH:/usr/local/jdk/bin" devil/jdk2 /bin/bash , 使用这个命令把两个容器链接起来
docker attach 第二个容器id, cat /etc/hosts ,能够看到 上面配置的tomcat 别名指向第一个容器