Docker(3):docker运行nginx实例以及在java容器中运行java程序

、目的

    通过运行nginx可以充分理解运行镜像原理,以及镜像内部虚拟网络端口和服务器端口的桥接关系。同时,使用java容器,编译java文件,并且运行java程序。

二、docker运行nginx镜像实例

1.nginx简介

   ngnix为持久运行的容器,本文实现在后台运行该镜像,同时进入容器内部,查看容器内部细节。

2.拉取nginx镜像

(1)进入dokcer官网

https://hub.docker.com/

(2)搜索nginx,点击官方发布版本

Docker(3):docker运行nginx实例以及在java容器中运行java程序_第1张图片

(3)点击选择对应版本,并且copy拉取镜像命令

Docker(3):docker运行nginx实例以及在java容器中运行java程序_第2张图片

(4)Linux中运行命令

docker pull nginx

(5)查看结果

docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
koa-demo                latest              66521e4fda54        10 days ago         676 MB
docker.io/tomcat        latest              dd6ff929584a        2 weeks ago         463 MB
docker.io/nginx         latest              881bd08c0b08        2 weeks ago         109 MB

3.运行nginx镜像

(1)运行

docker run -d docker.io/nginx

返回

[root@hadoop02 ~]# docker run -d docker.io/nginx

be5a1904e20d1f08ad036474b40325535e25fb24c3d23603f6eee77fa46f442a

 

(2)进入容器内部的命令为

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

实例

[root@hadoop02 ~]# docker exec -it be5a bash

root@be5a1904e20d:/#

 

(3)退出exit

root@be5a1904e20d:/# exit

exit

(4)关闭容器

docker stop be5a1

4.Nginx外网访问配置

(1)使用桥接模式使容器和外网端口连接

docker run -d -p 8000:80 docker.io/nginx

-d:表示后台运行
-p:端口设置,8000为本机端口,80为Nginx容器端口
docker.io/nginx:容器名。

运行结果

[root@hadoop02 ~]# docker run -d -p 8000:80 docker.io/nginx

053630a74f056e3207d5f01681e8216702c22b13ffac5d16ac1ef03bfb367568

(2)查看

[root@hadoop02 ~]# docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES

16c71c9da802        docker.io/nginx     "nginx -g 'daemon ..."   56 seconds ago      Up 55 seconds       0.0.0.0:8888->80/tcp   sleepy_stallman

(3)访问Ip:8000

Docker(3):docker运行nginx实例以及在java容器中运行java程序_第3张图片

 

三、步骤

1.    拉取java镜像

[root@docker-node1 java]# docker pull java

2.    在宿主机上编译文件, 
因为java容器没有vi编译器,编译很不方便。

[root@docker-node1 java]# cd /opt/datas/java
[root@docker-node1 java]# vi HelloDocker.java

填写

public class HelloDocker {
    public static void main(String[] args) {
        System.out.println("Hello Docker world!");
    }
}

3.    开启java容器,将HelloDocker.java文件所在目录映射到java容器中

[root@docker-node1 ~]# docker run -v /opt/datas/java:/opt/ -it d23bdf5b1b1b bash

4.    编译HelloDocker.java为可执行文件HelloDocker.class

root@9ad31c4c1220:/opt# javac HelloDocker.java 
root@9ad31c4c1220:/opt# ls
HelloDocker.class  HelloDocker.java

5.    执行class文件

root@9ad31c4c1220:/opt# java HelloDocker
Hello Docker world!


 

你可能感兴趣的:(Docker)