首页
关于
友链
Search
1
wlop 4K 壁纸 4k8k 动态 壁纸
1,472 阅读
2
Nacos持久化MySQL问题-解决方案
933 阅读
3
Docker搭建Typecho博客
752 阅读
4
滑动时间窗口算法
728 阅读
5
Nginx反向代理微服务配置
699 阅读
生活
解决方案
JAVA基础
JVM
多线程
开源框架
数据库
前端
分布式
框架整合
中间件
容器部署
设计模式
数据结构与算法
安全
开发工具
百度网盘
天翼网盘
阿里网盘
登录
Search
标签搜索
java
javase
docker
java8
springboot
thread
spring
分布式
mysql
锁
linux
redis
源码
typecho
centos
git
map
RabbitMQ
lambda
stream
少年
累计撰写
189
篇文章
累计收到
24
条评论
首页
栏目
生活
解决方案
JAVA基础
JVM
多线程
开源框架
数据库
前端
分布式
框架整合
中间件
容器部署
设计模式
数据结构与算法
安全
开发工具
百度网盘
天翼网盘
阿里网盘
页面
关于
友链
搜索到
1
篇与
的结果
2023-04-08
Docker镜像创建、镜像push
镜像创建、镜像push是什么Dockerfile是用于构建docker镜像的文件Dockerfile里包括了构建镜像所需的“指令”Dockerfile有其特定的语法规则基本结构例如:在一台ubuntu 21.04上运行下面这个hello.py的Python程序不用daocker步骤:1、编写hello.py文件。print("hello docker")2、准备Python环境apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y python3.9 python3-pip python3.9-dev3、运行hello.py$ python3 hello.py hello docker使用Dockerfile构建镜像后就这样FROM ubuntu:20.04 RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y python3.9 python3-pip python3.9-dev ADD hello.py / CMD ["python3", "/hello.py"]说明:FROM:导入一个基础镜像RUN:要运行的linx命令ADD:添加文件到docker镜像的指定目录CMD:使用该镜像创建容器的时候,要执行的命令。构建镜像将写好的hello.py文件和Dockerfile文件放在一起进入该目录。构建镜像docker image build -t 容器名称:版本 构建镜像存放路径例如:docker image build -t hello .注意:如果不写版本号默认是latest。t:表示标签例如,构建上面的py镜像:docker image build -t i2cn/hello:1.0 .构建镜像名称是hell,版本默认是latest,存放位置当前文件夹下。注意:因为是根据一个image创建的,image的id是相同。镜像提交到DockerHub需要符合DockerHub命名规范。根据现有image修改tag生成一个新image tag:docker image tag 容器名称 新容器名称/名称:版本docker image tag i2cn/hello:1.0 i2cn/hello:1.1.0登录DockerHhub:docker login会提示输入用户名密码。推送自定义镜像到DockerHubdocker image push 镜像名称:tag注意:如果是要推送到自己的DockerHub一定要取一个自己账号开头的镜像名称。例如推送上面自己构建的镜像:docker image push i2cn/hello:1.0打开Docker hub自己仓库,就可以看到push的镜像了。测试拉去push的镜像删除本地镜像:docker image rm i2cn/hello:1.0从新拉取推送到dockerhub的镜像docker image pull i2cn/hello:1.0执行镜像:docker container run -it i2cn/hello:1.0可以看到输出:hello docker测试成功。commit创建镜像将现有容器的改变,commit成一个新的镜像。例如:启动一个nginx容器,修改nginx的欢迎页面信息,然后重新commit成一个新的镜像,如果要使用改变后的nginx容器,则可以直接执行commiit后的镜像即可。执行nginx镜像,运行nginx容器,查看nginx首页。docker container run -d -p 80:80 nginx进入nginx修改首页信息docker exec -it 8872c sh进入nginx容器首页文件路径cd /usr/share/nginx/html修改首页信息echo "<h1>hello word </h1>" > index.html用echo命令,将“hello word ”写入index.html查看首页信息重点:使用commit命令,将修改后的nginx容器,commit成一个镜像。停止nginx容器运行docker container stop 8872ccommit容器成一个新镜像:docker container commit 8872 i2cn/nginx:1.0.0查看通过commit新生成的镜像:创建容器,commit创建镜像1、创建ubuntu容器docker container run -it ubuntu:21.04 sh2、在ubuntu容器里面安装Python环境apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y python3.9 python3-pip python3.9-dev3、创建hello.py文件,打印hello dockerecho "print('hello docker')" > /hello.py4、推出ubuntu容器,通过commit打包ubuntu容器。docker container commit ubuntu i2cn/pydemo:1.05、通过打包后的pydemo:1.0镜像运行容器。docker container run i2cn/pydemo:1.0 python3 /hello.py 这种方法和离线导入导出不怎么使用。查看镜像分层docker image history 镜像名称例如查看nginx分层信息docker image history nginxscratch特殊镜像scratch镜像是一个为空的基础镜像。
2023年04月08日
152 阅读
0 评论
1 点赞