centos8+docker系列(4)——运行web应用

1. 运行web应用并设置ip和端口

1.1 经过前面几节内容的尝试,服务器里已经存在大量正在运行的无用容器。可以用下面两行命令全部删除:

sudo docker stop $(sudo docker ps -q) //先全部停用所有容器
sudo docker rm $(sudo docker ps -aq) //再删除所有容器

1.2 网络端口映射

sudo docker pull training/webapp  //拉取镜像
sudo docker run -d --name hello-web -P training/webapp python app.py //创建并运行容器,随机映射端口

如图:
在这里插入图片描述

centos8+docker系列(4)——运行web应用
访问对应端口,页面如下:
在这里插入图片描述

centos8+docker系列(4)——运行web应用
除了随机映射端口,我们还可以限定端口映射规则,如下:

sudo docker run -d --name hello-web5001 -p5001:5000 training/webapp python app.py //将容器的5000端口映射到服务器的5001端口上

运行后如下:
在这里插入图片描述
在这里插入图片描述

1.3 容器互联

1.3.1 新建网络

sudo docker network create -d bridge test-net
1.3.2 容器互联
sudo docker run -itd --name test1 --network test-net ubuntu /bin/bash //test1链接网络text-net
sudo docker run -itd --name test2 --network test-net ubuntu /bin/bash //test2链接网络text-net

至此,test1 容器和 test2 容器建立了互联关系。

2.Dockerfile构建镜像

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

2.1 命令行创建Dockerfile文档

sudo mkdir Dockerfile  //创建文件夹Dockerfile
cd mkdir Dockerfile  //进入文件夹Dockerfile
sudo vi Dockerfile  //在文件夹中创建一个文档Dockerfile,并进入编辑器

通过vi命令进入文档后,默认是处于命令行模式,我们要切换到插入模式才能输入文字

切换到插入模式:按键’i’,可以用来修改内容
切换到命令行模式:按键’esc’,可以用来移动光标到指定位置
退出vi且保存文件:在命令行模式下,按’:'冒号键进入“Last line mode”模式,输入:
: w filename 将文章以指定的文件名filename保存
: wq 保存并退出
: q! 不保存并强制退出
在编辑器中输入以下命令:

From nginx
Run echo '这是一个本地创建的镜像nginx' > /usr/share/nginx/html/index.html

保存并退出后,用命令行查看文档内容:

cat Dockerfile

3. 创建远程仓库,推送镜像

3.1 提交镜像

docker commit -a "by_lize" -m "文档网站" e149949b15a6 spms-doc:v1.0

-a:镜像作者信息

-m:镜像信息描述

e149949b15a6:我的仓库id

spms-doc:v1.0:我提交的镜像名称

此时查看本地镜像,发现已经存在我刚刚提交的镜像。

3.2 推送仓库

因为远程仓库的名称形式为:用户名/镜像名 所以我们需要在本地创建相同的镜像名称,并定义标签名,命令如下:

docker tag spms-doc:v1.0 zjsjlize/spms-doc:v1.0

然后推送镜像:

docker push zjsjlize/spms-doc:v1.0

4.创建javaweb应用

Dockerfile:

From openjdk:8-jdk-slim
LABEL maintainer="lize"

COPY target/xxxx.jar /app.jar  //将要部署的jar包(假定在target文件夹下),复制到容器根目录下,取名app.jar

ENTRYPOINT ["java","-jar","app.jar"] //启动命令,启动app.jar

使用Dockerfile制作镜像:

docker build -t my-demo:v1.0 . 

-t:为制作的镜像命名

-f:可选,选择依据的Dockerfile文件,可以是其它文件名。docker默认在本目录下找到名为Dockerfile的文件

.:当前文档路径,在命令行最后。一定不要忘记!!!必须要写上下文路径,才能找到正确的文件,才能运行Dockerfile

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中二少年学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值