docker实操_dockerFile创建docker镜像,启动docker容器

docker的安装:https://cloud.tencent.com/developer/article/1701451

1.简单尝试,首先创建第一个基于ubuntu镜像的docker容器

输入命令docker run -i -t ubuntu /bin/bash(/bin/bash:交互式 Shell,-t: 表示容器启动后会进入其命令行,-i: 表示以“交互模式”运行容器)
这个命令的意思是在指定的镜像ubuntu下创建一个新的容器,然后进入该容器的交互命令行
不知道因为什么原因失败了
在这里插入图片描述
输入命令再试一次,创建成功
在这里插入图片描述

这样一个docker容器就创建好了
然后因为创建的时候命令行后面的 /bin/bash,创建好容器后自动进入容器的交互页面
在这里插入图片描述

所以目前可以认为是在ubuntu系统下工作了
输入命令cat /etc/issue可以查看当前ubuntu的版本号
在这里插入图片描述

最后输入exit退出这个容器,返回CentOS7命令行
在这里插入图片描述

2.jar包准备等工作

https://blog.csdn.net/qq_38175040/article/details/119542316
虚拟机和宿主系统共享一个文件夹,在Centos7里面,输入cd /mnt/hgfs访问共享文件夹的临时挂载点,可以访问宿主机的共享文件夹
可以看到共享文件夹下的jar包
在这里插入图片描述

在根目录下新建一个文件夹springboot0808
在这里插入图片描述

然后把共享文件夹下的jar包复制到springboot0808下面
在这里插入图片描述

输入命令java -jar 0808demo-0.0.1-SNAPSHOT.jar来启动 0808demo-0.0.1-SNAPSHOT.jar这个jar包
在这里插入图片描述

服务可用,先按ctrl+c退出服务
在这里插入图片描述

注意java -jarnohup java -jar的区别:java -jar命令在命令行关闭的时候也会关闭服务,而nohup java -jar是一直已后台的方式在运行jar包,关闭命令行无影响。

3.制作docker镜像

以0808demo-0.0.1-SNAPSHOT.jar为基础,来制作一个镜像,启动容器。
首先输入命令vim Dockerfile(注意在springboot0808下面输入这个命令),输入如下内容后保存

在这里插入图片描述

这样DockerFIile就构建好了
在这里插入图片描述

docker file创建好了接下来构建docker镜像
输入命令docker build -t springboot_docker0808:v1 .,注意最后的那个.不能少

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

4.启动docker容器

输入命令:docker run --name springboot0808 -d -p 9081:9081 -t springboot_docker:v1
启动成功
在这里插入图片描述

输入命令docker exec -it springboot0808 /bin/bash,成功进入容器springboot的交互行
在这里插入图片描述

输入命令ls,这个容器的根目录下有0808demo-0.0.1-SNAPSHOT.jar这个jar包
在这里插入图片描述

这是因为之前编写docker file的时候,里面有一句将jar包复制到根目录的语句
在这里插入图片描述

docker容器已启动的情况下,如果是部署在云服务器的话,就已经可以通过浏览器访问刚刚部署在容器里的jar包服务了。
输入命令docker inspect springboot0808,查找到自己的容器ip(注意一定要查自己的ip,因为可能有docker的其他服务占用了172.17.0.2这个端口,而本容器的端口可能会变为172.17.0.3,172.17.0.4)
在这里插入图片描述
然后在centos7本地的浏览器里输入网址http://172.17.0.2:9081/hello/list,访问到了容器里的jar包服务(如果容器是部署在云服务器的话就可以在任意一台机器的浏览器里访问了,我这里只能在本地的服务器里访问)
在这里插入图片描述

Docker Swarm是Docker的原生集群管理工具,可以用于在多个主机上运行和管理容器Dockerfile是一种用于定义Docker镜像构建过程的文本文件。 使用Docker Swarm时,可以使用Dockerfile创建镜像,但其实创建镜像的过程与在单个主机上创建镜像的过程非常相似。主要的区别是,在Swarm中创建镜像将会在整个集群中被使用,而非仅限于单个主机。 首先,在Swarm集群的主节点上创建一个Dockerfile,该文件包含了构建镜像的指令和配置。以一个简单的Node.js应用为例,可以定义如下的Dockerfile: ``` FROM node:14-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 CMD [ "npm", "start" ] ``` 然后,在主节点的终端中,使用`docker build`命令构建镜像。例如,使用以下命令创建一个名为`my-app`的镜像: ``` docker build -t my-app . ``` 接下来,使用`docker push`命令构建好的镜像推送到Docker镜像仓库。例如,可以推送到Docker Hub: ``` docker push username/my-app ``` 最后,在Swarm集群的其他节点上使用`docker service`命令创建服务,并使用先前构建镜像作为服务的副本。例如,使用以下命令创建一个名为`my-app`的服务: ``` docker service create --name my-app --replicas 3 username/my-app ``` 这将在集群的多个节点上运行三个容器的副本,以提供高可用性和负载均衡的服务。 通过以上步骤,我们可以使用DockerfileDocker Swarm集群中创建镜像,并在集群中运行多个容器的副本来提供服务。这种方式使得应用程序可以更加灵活地在集群中运行,并可以根据需要进行扩展和管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LSQ的测试日记

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

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

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

打赏作者

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

抵扣说明:

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

余额充值