系统版本4.4.0-53-generic
以下操作均在root用户下进行
文中指定的端口都是随意指定的,可根据自己需求指定
本文共九张图
文档结构:
一、安装docker,运行hello-world
二、Docker运行Nginx
三、Docker网络(外部访问)
四、自定义镜像并部署web应用
一、安装docker,运行hello-world
1.保证Ubuntu软件源最新
apt-get update
2.下载docker
apt-get install -y docker.io
下载完成后可使用docker version查看docker版本,正常会显示client以及server,由于未启动docker服务,此时只会显示client的信息,可执行第三步启动docker,再执行docker version即可正常显示,显示结果如下
3.启动docker
service docker start
4.以docker官网的镜像hello-world(名字需与官网一致),拉取镜像
docker pull hello-world
5.拉取成功后可查看当前镜像列表
docker images
列表如下图所示
6.运行hello-world(前台运行)
docker run hello-world
运行结果如下图所示,从内容可看到hello-world的运行做了哪些事:
二、Docker运行Nginx
由于docker官网的镜像下载较慢,这里使用网易蜂巢中心:c.163.com,点击进入镜像中心即可。
1.通过网易凤巢中心拉取镜像
docker pull hub.c.163.com/library/nginx:latest
2.前台运行nginx
docker run hub.c.163.com/library/nginx
这一步没有任何反映(因为属于前台运行 ctrl+c将其停掉,最好使用后台运行)
2.后台运行nginx
(docker run --help 可查看可选的参数,-d参数表示后台运行)
docker run -d hub.c.163.com/library/nginx
返回一个id:6b79dde.....
3.查看运行的容器
docker ps
4.进入容器内部
docker exec -it 6b /bin/bash
(6b为id简写,如果很容易识别id可以简写)
5.退出容器
exit
三、Docker网络(外部访问)
重新启动时需关闭nginx容器
docker stop 6b
1.以桥接Bridge的方式启动nginx 需要指定端口映射(-p参数)
docker run -d -p 9999:80 hub.c.163.com/library/nginx
2.查看端口是否启动
netstat -na|grep 9999
3.以桥接Bridge的方式启动nginx 随机端口映射(-P参数)将映射容器的所有端口
docker run -d -P hub.c.163.com/library/nginx
4.此时即可通过外部浏览器访问nginx
以第三节第一步指定端口进行访问为例,若使用的是随机端口则需要查看系统分配的端口再进行访问。
在浏览器里输入IP:9999(IP填你部署环境的ip),即可看到nginx的欢迎页面:
四、自定义镜像并部署web应用(以部署开源的Jpress为例,并提供其数据库配置)
1.从jpress.io官网下载Jpress
进入jpress.io官网点击下载跳转到github下载最新的war包:
点击进入下载即可,将下载的文件放入到linux机器的某个文件夹下,如/home/docker
为方便使用重命名war包
mv jpress-web-newest.war jpress.war
2.由于要部署到tomcat中,从网易蜂巢镜像中心下载tomcat的镜像(tomcat的镜像是自带JDK的,无须下载java的镜像)
docker pull hub.c.163.com/library/tomcat:latest
3.在当前文件夹下编写Dockerfile(创建镜像的文件)
vim Dockerfile
填写以下内容
from hub.c.163.com/library/tomcat
MAINTAINER anyang johnney**@163.com
COPY jpress.war /usr/local/tomcat/webapps
解释:
from 引入tomcat镜像
MAINTAINER 镜像的所有者及联系方式,可不填
COPY 将创建的镜像拷贝到tomcat下,tomcat的具体路径可在镜像中心的镜像详情查看
4.构建镜像
docker build -t jpress:latest .
-t镜像名字及TAG 后面参数为镜像目录,.代表当前目录
创建完成后可查看自己的镜像:
5.运行自己创建的镜像
docker run -d -p 8888:8080 jpress
P.S. 端口按照需要指定
此时即可通过在浏览器输入IP:8888访问到Jpress,界面会显示Jpress的安装,Jpress的配置 不在本文的讨论范围,如想继续配置则继续第6步。
6.拉取mysql镜像
由于Jpress的安装需要使用到数据库,因此有了下面的步骤
docker pull hub.c.163.com/library/mysql:latest
7.运行mysql镜像
运行mysql是需要配置些数据库信息,如数据库密码(MYSQL_ROOT_PASSWORD)、需要创建的数据库(MYSQL_DATABASE)等,使用-e参数配键值对,更多参数可在镜像中心mysql镜像详情中查看。
docker run -d -p 7777:3306 -e MYSQL_ROOT_PASSWORD=000000 -e MYSQL_DATABASE=jpress hub.c.163.com/library/mysql
8.配置并重启jpress容器
按照上面的参数以及Jpress页面提示的安装步骤,填写好相应的信息即可成功创建Jpress。
配置完成后,需要重启jpress容器:
docker restart 5e8caebf1643
P.S. 5e8caebf1643为jpress的id
9.访问Jpress
在浏览器输入IP:8888/jpress,结果如下