我的Docker之路

Ubuntu16_x64下安装docker及部署web应用

2017-06-09  本文已影响59人  Johnney_Ann

系统版本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即可正常显示,显示结果如下

docker信息

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的运行做了哪些事:

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的欢迎页面:

nginx欢迎页

四、自定义镜像并部署web应用(以部署开源的Jpress为例,并提供其数据库配置)

1.从jpress.io官网下载Jpress

进入jpress.io官网点击下载跳转到github下载最新的war包:

jpress-github

点击进入下载即可,将下载的文件放入到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,结果如下

Jpress
上一篇下一篇

猜你喜欢

热点阅读