docker: 构建自己的镜像
我们给予ubuntu的镜像然后拷贝python的requirement.txt文件进去,再根据这个文件安装对应的python库
拷贝文件到docker容器。首先查找对应的容器ID。然后执行命令
docker cp 文件源路径 文件目标路径
root@zhf-maple:/home/zhf/桌面# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f98b8e77182b maple412/ubuntu:nb_test "/bin/bash" 22 seconds ago Up 17 seconds tender_rosalind
root@zhf-maple:/home/zhf/桌面#
docker cp /home/zhf/docker/requirement.txt
f98b8e77182b:/home/software_requirement
root@f98b8e77182b:/home/software_requirement#
ls -al
total
12
drwxr-xr-x
2 root root 4096 Sep 22 06:08 .
drwxr-xr-x
4 root root 4096 Sep 22 06:08 ..
-rw-r--r--
1 root root 2058 Sep 22 06:03 requirement.txttxt
root@f98b8e77182b:/home/software_requirement#
python3 install -r requirement.txt
保存镜像:
Docker
ps -l找到最近一次修改的容器id。
root@zhf-maple:/home/zhf/桌面#
docker ps -l
CONTAINER
ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
f98b8e77182b
maple412/ubuntu:nb_test "/bin/bash" 17
minutes ago Exited (1) 10 minutes ago
tender_rosalind
然后使用docker
commit 容器ID
镜像名就可以生成镜像了
root@zhf-maple:/home/zhf/docker#
docker commit f98b8e77182b maple412/ubuntu:test
sha256:bca747cf9c55617d802d9e1633c6d70149959caef49af9a44f6d0a4b840c6c96
此时查看镜像就有了我们生成的镜像
root@zhf-maple:/home/zhf/docker#
docker images
REPOSITORY
TAG IMAGE ID CREATED
SIZE
maple412/ubuntu
test bca747cf9c55 19 seconds ago 522MB
maple412/ubuntu
nb_test 1a2a83944331 8 months ago 521MB
通过docker
login -u xx -p xx 登录docker后就可以上传就成功了
root@zhf-maple:/home/zhf/docker#
docker push maple412/ubuntu:test
The
push refers to repository [docker.io/maple412/ubuntu]
21b2d81ef223:
Pushed
df28f5ba1b2a:
Pushed
2c77720cf318:
Layer already exists
1f6b6c7dc482:
Layer already exists
c8dbbe73b68c:
Layer already exists
2fb7bfc6145d:
Layer already exists
test:
digest:
sha256:0a0ecefa6226f7cb22bf8387ec2ac766ab6c958a9b38cdeecc0063da85d2e6f8
size: 1573
docker
hub上也可以看到上传的镜像
对应的Dockerfile如下:
FROM ubuntu
WORKDIR /home/software_requirement
COPY ./requirement.txt /home/software_requirement
RUN apt-get update && apt-get install python3-pip --assume-yes
RUN pip3 install -r requirement.txt
这里有2点需要注意下:
1
这里的COPY命令,源路径要写相对路径。也就是requirement.txt相对于Dockerfile的位置,否则会提示找不到源路径位置
2
在使用apt-get
install的时候会遇到如下错误,提示是否需要安装,然后自动退出
Step
5/7 : RUN apt-get install python3.6
--->
Running in c96a012485da
Reading
package lists...
Building
dependency tree...
Reading
state information...
The
following additional packages will be installed:
file
libexpat1 libmagic-mgc libmagic1 libmpdec2 libpython3.6-minimal
libpython3.6-stdlib
libreadline7 libsqlite3-0 libssl1.1 mime-support
python3.6-minimal
readline-common xz-utils
Suggested
packages:
python3.6-venv
python3.6-doc binutils binfmt-support readline-doc
The
following NEW packages will be installed:
file
libexpat1 libmagic-mgc libmagic1 libmpdec2 libpython3.6-minimal
libpython3.6-stdlib
libreadline7 libsqlite3-0 libssl1.1 mime-support
python3.6
python3.6-minimal readline-common xz-utils
0
upgraded, 15 newly installed, 0 to remove and 0 not upgraded.
Need
to get 6580 kB of archives.
After
this operation, 33.7 MB of additional disk space will be used.
Do
you want to continue? [Y/n] Abort.
The
command '/bin/sh -c apt-get install python3.6' returned a non-zero
code: 1
解决办法就是在命令最后加上--assume-yes
RUN
apt-get update && apt-get install python3-pip --assume-yes
docker: 构建自己的镜像的更多相关文章
- 使用Docker构建jdk1.8镜像
一.下载centos镜像 下载自己需要的版本TAG,详见: docker安装指定版本TAG的镜像 $ sudo docker pull centos:centos7 二.下载jdk1.8,并上传到/u ...
- Docker构建一个node镜像
0. 设置国内docker镜像源 进入Settings->Daemon->Advanced,添加如下配置. { "registry-mirrors": [ " ...
- docker构建一个简易镜像
一 下载centos镜像 docker pull centos 二 启动镜像 [root@Centos-node3 ~]# docker run -it --name my_ng centos bas ...
- 使用Docker构建基于centos7镜像的python环境
Dcokerfile配置信息 ############################################## # 基于centos7构建python3运行环境 # 构建命令: 在Dock ...
- Docker教程:镜像构建和自动镜像构建dockerfile
http://blog.csdn.net/pipisorry/article/details/50805379 Docker透过Dockerfile来记录建立Container映象文件的每一个步骤,可 ...
- Docker 使用 Dockerfile 构建自己的镜像
可以使用Dockerfile的配置文件方式进行构建自己的镜像 下面利用docker构建一个Caddy web服务器 构建脚本 Dockerfile有自己的命令,下面使用了一些比较常用的命令,更多的Do ...
- 物联网架构成长之路(25)-Docker构建项目用到的镜像1
0. 前言 现在项目处于初级阶段,按照规划,先构建几个以后可能会用到的Image,并上传到阿里云的Docker仓库.以后博客中用到的Image,大部分都会用到这几个基础的Image,构建一个简单的物联 ...
- Docker 构建镜像
Docker 构建镜像 1.首先,在项目的根目录下,新建一个文本文件.dockerignore,写入下面的内容. 下面三行代码表示: 1.这三个路径要排除,不要打包进入 image 文件. 2.如果你 ...
- docker构建自定义镜像
docker构建自定义镜像 要构建一个镜像,第一步准备所需要的文件,第二步编写Dockerfile文件,比如我现在构建一个java web镜像 第一步:准备java web工程的war包文件(这里假设 ...
随机推荐
- c# 调用 C++ dll 传入传出类型对应说明(转)
由于经常使用C#调用 非托管C++ dll 操作一下硬件,出现传入传出类型的问题,现整理了C++ dll 类型与 C#类型对应关系: //C++中的DLL函数原型为 //extern & ...
- 追光的人对Echo,SkyReach的Beta产品测试报告
所属课程 软件工程1916 作业要求 Beta冲刺博客汇总 团队名称 追光的人 作业目标 团队互测 队员学号 队员博客 221600219 小墨 https://www.cnblogs.com/hen ...
- Beta冲刺——用户使用调查报告
项目Beta冲刺(团队) --用户使用调查报告 一.项目概述 1.1项目名称 卡战三国 1.2项目简介 一款休闲娱乐益智卡牌游戏 1.3 项目预期目标 开发一款基于三国题材的卡牌通关对战手机游戏 二. ...
- CF528D Fuzzy Search 和 BZOJ4259 残缺的字符串
Fuzzy Search 给你文本串 S 和模式串 T,求 S 的每个位置是否能模糊匹配上 T. 这里的模糊匹配指的是把 T 放到 S 相应位置上之后,T 中每个字符所在位置附近 k 个之内的位置上的 ...
- eclipse 中的注释 快捷键 多行注释快捷键 单行注释快捷键
Eclipse 中的两种注释方法: (1)多行注释(2)单行注释 一. 多行注释快捷键 1:添加注释Ctrl+Shift+/ : 添加/* */注释 示例:选中代码块后按下快捷键即可 /* fl ...
- 运行银联支付系统demo
1.Demo下载 下载地址:https://open.unionpay.com/tjweb/acproduct/list?apiservId=448 2.导入项目 注意:非maven项目,在导入ide ...
- json-server模拟服务器API
一.npm安装 npm install --global json-server 二.使用:创建一个json数据文件,比如: { "students": [{ "id&q ...
- su与su -,sudo 的区别
"sudo" , "su" , "su - " 区别: 一.sudo是一种权限管理机制,依赖于/etc/sudoers,其定义了授权给哪个用 ...
- CSPS_114
考前自闭赛 综合我100场血的教训,我的考试策略应该是: 1.不要期望能AC某道题,想都不要想,否则很容易直接崩 2.哪怕想到正解,先打暴力,把暴力码出来!没用也码! 稳扎稳打地得到代码难度最小的下一 ...
- 退役III次后做题记录(扯淡)
退役III次后做题记录(扯淡) CF607E Cross Sum 计算几何屎题 直接二分一下,算出每条线的位置然后算 注意相对位置这个不能先搞出坐标,直接算角度就行了,不然会卡精度/px flag:计 ...