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,点击官方发布版本

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

(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

 

三、步骤

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!


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一种容器化平台,可以使用容器运行应用程序Nginx是一个流行的开源Web服务器软件。在Docker使用Nginx可以帮助开发人员更方便地部署和管理Web应用程序。 引用的命令"docker run --name some-nginx -v /data/nginx/html:/usr/share/nginx/html:ro -d nginx" 是启动一个简单的Nginx容器实例的命令。其,"--name some-nginx"是给容器指定一个名称,"-v /data/nginx/html:/usr/share/nginx/html:ro"是将主机上的目录挂载到容器的目录,"-d"是让容器在后台运行,"nginx"是指定容器使用的镜像。 引用的命令"docker-compose -f /data/nginx/docker-compose.yml up -d" 是使用Docker Compose启动Nginx容器的命令。通过在docker-compose.yml文件定义Nginx容器配置信息,可以方便地管理和启动多个容器。 引用的命令"docker run --name some-nginx -v /data/nginx/html:/usr/share/nginx/html:ro -p 8080:80 -d nginx" 是启动一个绑定外网端口8080的Nginx容器的命令。其,"-p 8080:80"是将容器的80端口映射到主机的8080端口,这样可以通过访问主机的8080端口来访问Nginx容器。 总结起来,使用Docker可以方便地启动和管理Nginx容器,通过挂载目录和端口映射可以实现更灵活的配置访问方式。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [docker部署服务docker部署nginx服务](https://blog.csdn.net/lws_163/article/details/128126721)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值