目录
1. Docker介绍
2. Docker安装
3. Docker使用
3.1 安装tomcat服务为例
3.2 安装MySQL为例
1. Docker介绍
百度百科给的定义是:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:
- DockerClient客户端:客户端通过命令行或者其他工具使用DockerAPI与 Docker 的守护进程通信
- Docker Daemon守护进程
- Docker Image镜像:Docker 镜像是用于创建 Docker 容器的模板
- DockerContainer容器:容器是独立运行的一个或一组应用
- Docker Host主机:一个物理或者虚拟的机器用于执行Docker 守护进程和容器。
- Docker Registry仓库:Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。
2. Docker安装
我采用的Ubuntu14.04安装docker,具体操作如下:
检查Ubuntu系统内核版本,保证版本在3.10以上的64bit系统:
切换root权限并更新apt-get:
安装Docker(默认不是最新版本):
apt-get install -y docker.io
要安装最新版本的命令如下:
curl -s https://get.docker.com|sh
安装完成后:
启动docker:
service docker start
停止docker:
sudo service docker stop
重启docker:
sudo service docker restart
3. Docker使用
docker常用命令如下:
操作 | 命令 | 说明 |
检索 | docker search 关键字 eg:docker search mysql | docker hub上检索镜像的详细信息,如镜像的TAG。 |
拉取 | docker pull 镜像名:tag | :tag是可选的,tag表示标签,多为软件的版本,默认是latest |
列表 | docker images | 查看所有本地镜像 |
删除 | docker rmi image-id | 删除指定的本地镜像 |
运行 | docker run --name container-name -d image-name | --name:自定义容器名 -d:后台运行 image-name:指定镜像模板 |
列表 | docker ps(查看运行中的容器); | 加上-a;可以查看所有容器 |
停止 | docker stop container-name/container-id | 停止当前你运行的容器 |
启动 | docker start container-name/container-id | 启动容器 |
删除 | docker rm container-id | 删除指定容器 |
端口映射 | -p 3306:3306 | -p: 主机端口(映射到)容器内部的端口 |
日志 | docker logs 容器id | |
3.1 安装tomcat服务为例
首先查找一下我们需要用到的服务(也可以去docker hub上检索镜像的详细信息):
docker search tomcat
下载tomcat镜像:
docker pull tomcat
查看所有镜像:
docker images
运行tomcat:
docker run --name tomcat01 -d tomcat:latest
查看正在运行的容器:
docker ps
停止运行中的容器
docker stop 容器的id
启动容器:
docker start 容器id
删除没有用的容器:
docker rm 容器id
做好端口映射,让我们能够从其他地方访问到这个tomcat:
docker run -d -p 8888:8080 tomcat
-d:后台运行
-p: 将主机的端口映射到容器的一个端口 主机端口:容器内部的端口
除此之外,我们还可以启动几个tomcat容器:
tomcat安装完成了,接下来我们尝试部署一个应用上去:
执行命令:docker exec -it tomcat02 bash,可以看到一个完整的目录:
复制war文件到tomcat的webapps下:
docker cp demo01.war tomcat02:/usr/local/tomcat/webapps
发现出现了一个路径为指定的错误:网上查一下说是docker版本问题,看一下docker版本:
版本太低了,跟换更高版本(1.8以上)
wget https://get.docker.com/builds/Linux/x86_64/docker-1.9.1
chmod +x docker-1.9.1
sudo mv docker-1.9.1 /usr/bin/docker
service docker restart
docker ps -a
docker start tomcat02
ls
docker cp demo01.war tomcat02:/usr/local/tomcat/webapps
docker restart tomcat02
访问一下:虚拟机ip:8087/demo01/
部署成功了。
3.2 安装MySQL为例
下载mysql:
docker pull mysql
启动mysql容器:
发现没有启动成功:
说明MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD、 MYSQL_RANDOM_ROOT_PASSWORD;这个三个参数必须指定一个。
由于我Ubuntu系统本来就安装了mysql数据库的,所以加上端口映射的时候,主机端口选择3307端口:
docker run -p 3307:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
启动成功了,我们在真机里面可以用navicat去连接一下这个数据库,看能否连接成功: