什么是docker?
Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。docker就是类似的理念。现在都流行云计算了,云计算就好比大货轮。docker就是集装箱。
官网传送门,你要能打开算我输 docker.com
下载安装docker
yum install -y epel-release // 下载
yum install docker-io // 安装docker
chkconfig docker on // 加入开机启动
systemctl enable docker.service //不知为何上面那个无效,亲测这个可用
service docker start // 启动docker服务
安装docker的tomcat容器
使用docker search tomcat
来搜索tomcat镜像,并下载最高starts的那个docker pull docker.io/tomcat
启动tomcat
docker run -p 8081:8080 docker.io/tomcat
这里8081是外网访问端口,8080是容器内部端口,意思是将8081映射到8080.
访问127.0.0.1:8081即可访问已启动的tomcat
部署web应用
- 查看正在运行的容器
docker ps
- 将自己的war包上传到tomcat
docker cp demo.war 4cf23164cc4d :/usr/local/tomcat/webapps
上面的ID是CONTAINER_ID,前面使用的docker ds
可以看到容器的id
- 重启tomcat
docker restart -p 8081:8080 docker.io/tomcat
- 查看tomcat容器中的项目
docker exec -it 4cf23164cc4d /bin/bash
cd /webapps
ls
挂载启动
以上的方式有个弊端:容器重启后项目就没了,所以下面我们使用挂在的方式启动容器
docker run -d -v /usr/docker_file/demo.war:/usr/local/tomcat/wabapps/demo.war -p 8081:8080 docker.io/tomcat
自定义镜像启动
以上两种方式一般作为测试使用,一般生产环境上会已打包镜像的方式启动
- 编辑dockfile文件
vi Dockfile
from docker.io/tomcat:latest #你的 tomcat的镜像
MAINTAINER xxx@qq.com #作者
COPY demo.war /usr/local/tomcat/webapps #放置到tomcat的webapps目录下
- 生成新的镜像
docker build -t demo:v1
- 启动镜像
docker run -p 8081:8080 demo:v1
常用命令
作用 | 命令 | 说明 |
---|---|---|
启动docker服务 | service docker start | |
查看信息 | docker info | |
查看镜像 | docker images | |
pull镜像 | docker pull xxxxx | |
查看容器 | docker ps | |
运行容器 | docker run xxxx | docker run -p 8081:8080 --name 自定义名称 -it 镜像名称 /bin/bash |
后台运行容器 | docker run -d -p 6379:6379 docker.io/redis | |
停止容器运行 | docker stop CONTAINERID | CONTAINERID为要停止的容器的ID |
删除容器 | docker rm CONTAINERID | |
删除镜像 | docker rmi IMAGEID | IMAGEID为要删除的镜像ID |
启动容器 | docker start CONTAINERID | |
使容器开机自启 | docker update --restart=always CONTAINERID |