目录

1. Docker介绍

2. Docker安装

3. Docker使用

3.1 安装tomcat服务为例

3.2 安装MySQL为例


 

1. Docker介绍

百度百科给的定义是:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

一个完整的Docker有以下几个部分组成:

  1. DockerClient客户端:客户端通过命令行或者其他工具使用DockerAPI与 Docker 的守护进程通信
  2. Docker Daemon守护进程
  3. Docker Image镜像:Docker 镜像是用于创建 Docker 容器的模板
  4. DockerContainer容器:容器是独立运行的一个或一组应用
  5. Docker Host主机:一个物理或者虚拟的机器用于执行Docker 守护进程和容器。
  6. Docker Registry仓库:Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。 

2. Docker安装

我采用的Ubuntu14.04安装docker,具体操作如下:

检查Ubuntu系统内核版本,保证版本在3.10以上的64bit系统:

docker 网络 socks5_docker 网络 socks5

切换root权限并更新apt-get:

docker 网络 socks5_docker_02

安装Docker(默认不是最新版本):

apt-get install -y docker.io

要安装最新版本的命令如下:

curl -s https://get.docker.com|sh

docker 网络 socks5_Docker_03

安装完成后:

docker 网络 socks5_tomcat_04

启动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 网络 socks5_tomcat_05

查看所有镜像:

docker images

docker 网络 socks5_docker 网络 socks5_06

运行tomcat:

docker run --name tomcat01 -d tomcat:latest

docker 网络 socks5_tomcat_07

查看正在运行的容器:

docker ps

docker 网络 socks5_Docker_08

停止运行中的容器

docker stop  容器的id

docker 网络 socks5_tomcat_09

启动容器:

docker start 容器id

docker 网络 socks5_tomcat_10

删除没有用的容器:

docker rm 容器id

docker 网络 socks5_Docker_11

做好端口映射,让我们能够从其他地方访问到这个tomcat:

docker run -d -p 8888:8080 tomcat
-d:后台运行
-p: 将主机的端口映射到容器的一个端口    主机端口:容器内部的端口

docker 网络 socks5_docker 网络 socks5_12

docker 网络 socks5_docker 网络 socks5_13

除此之外,我们还可以启动几个tomcat容器:

docker 网络 socks5_docker 网络 socks5_14

tomcat安装完成了,接下来我们尝试部署一个应用上去:

执行命令:docker exec -it tomcat02 bash,可以看到一个完整的目录:

docker 网络 socks5_docker_15

复制war文件到tomcat的webapps下:

docker cp demo01.war tomcat02:/usr/local/tomcat/webapps

docker 网络 socks5_docker_16

发现出现了一个路径为指定的错误:网上查一下说是docker版本问题,看一下docker版本:

docker 网络 socks5_docker 网络 socks5_17

版本太低了,跟换更高版本(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 网络 socks5_docker_18

docker ps -a
docker start tomcat02

docker 网络 socks5_docker_19

ls
docker cp demo01.war tomcat02:/usr/local/tomcat/webapps
docker restart tomcat02

docker 网络 socks5_tomcat_20

访问一下:虚拟机ip:8087/demo01/

docker 网络 socks5_docker_21

部署成功了。

3.2 安装MySQL为例

下载mysql:

docker pull mysql

docker 网络 socks5_Docker_22

启动mysql容器:

docker 网络 socks5_Docker_23

发现没有启动成功:

docker 网络 socks5_tomcat_24

说明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

docker 网络 socks5_docker 网络 socks5_25

启动成功了,我们在真机里面可以用navicat去连接一下这个数据库,看能否连接成功:

docker 网络 socks5_docker_26

docker 网络 socks5_tomcat_27

docker 网络 socks5_tomcat_28