docker hello world

引言

Docker是一个容器化平台,能够把应用程序及其依赖打包在一个容器中,让容器在任意地方运行。最近刚了解了Docker,自己动手操作了下,做个记录,也希望可以帮助到刚学习Docker的小伙伴。

本文中已使用管理员模式,自行操作时若权限不够请在文中命令前加上 sudo

下载好Docker后输入 docker version 如图即安装成功。

(只有Client 无Server是Docker没有启动,使用service docker restart命令启动即可)

一、输出hello world

1、查看当前本地镜像 docker images,可以看到目前只有一个镜像。

2、使用 docker pull hello-world 来拉取hello-world镜像

3、此时在使用 docker images 查看本地镜像,会发现多了一个hello-world镜像

4、使用 docker run hello-world 来运行镜像,如图便运行成功。

二、自己动手写一个镜像

1、需要一个jar包,使用IDEA创建一个Spring boot项目,随便输出一句话,install打成jar包,jar包生成在target目录下。

2、把jar包拉到一个空的文件夹中

3、在文件夹中使用 vim Dockerfile 命令创建一个Dockerfile文件(名字不能出错),在文件中输入以下内容。记得将jar包名改成自己的jar包名,按 ESC后输入:wq! 保存。

FROM openjdk #表示该镜像基于 jdk构建

COPY demo-0.0.1-SNAPSHOT.jar / #将jar包复制到根目录下

CMD "java","-jar","/demo-0.0.1-SNAPSHOT.jar" #使用java -jar 命令执行jar包

FROM openjdk

COPY demo-0.0.1-SNAPSHOT.jar /

CMD "java","-jar","/demo-0.0.1-SNAPSHOT.jar"

4、使用 docker bulid -t hello . 来构建镜像, hello为命名的构建后镜像名, . 表示构建在此目录下,如图则构建成功。

注:此处构建时之前遇到了一个问题为如下报错:

error pulling image configuration: download failed after attempts=6: dial tcp 52.58.1.161:443: i/o timeout

报错为下载镜像配置错误,超时。原因好像为国外镜像地址不可用了。

解决办法:自己配置镜像地址。

到 /etc/docker 下 看有无 daemon.json 文件 没有就自己创建一个

在文件中加入以下内容:

{

"registry-mirrors": [

"https://docker.m.daocloud.io",

"https://dockerproxy.com",

"https://docker.mirrors.ustc.edu.cn",

"https://docker.nju.edu.cn"

]

}

依次执行 systemctl daemon-reload systemctl restart docker 命令

重新 docker build -t 报错解决

5、使用docker images 可以看到刚刚构建的 hello 镜像。

6.使用 docker run hello 命令来 运行容器

相关推荐
70后写java的老码农1 小时前
docker-compose 部署 Redis Stack Server 6.2.6-v19
redis·docker
.冰块.1 小时前
流量大了自动加 Pod!K8s HPA 扩缩容与 ResourceQuota/LimitRange 资源管控实战
linux·云原生·容器·kubernetes·hpa·quota·limitrange
雪落漂泊2 小时前
Linux进程(四)概念:命令行参数和环境变量篇
linux·运维·服务器
方便面不加香菜2 小时前
Docker Container -- 容器命令详解
运维·docker·容器
say_fall3 小时前
【Linux系统编程】Linux进程信号:从“外卖到了“到内核里的一张位图
linux·运维·服务器·车载系统·智能硬件
Z21-X3 小时前
云原生运维实战笔记:企业网站综合上云部署与云运维服务全景解析
运维·笔记·学习·云原生
Decay__4 小时前
19_MySQL 告警与自动化运维 —— 告警分级收敛 / Webhook / 定时巡检 / 脚本库
运维·数据库·sql·mysql·架构
FungLeo4 小时前
成为全栈·基础补充·Linux 服务器入门
linux·运维·服务器·ssh·部署·成为全栈
爱和冰阔落4 小时前
【Linux网络】TCP 服务器怎么写?从 listen、accept 到 read/write,手写完整 Echo Server
linux·运维·服务器·网络
鲁邦通物联网4 小时前
工业装备OEM远程服务架构:边缘计算网关与售后运维系统设计
运维·边缘计算·数据采集·工业数据采集·边缘计算网关·plc数采·厂内数采