docker入门实践,制作Dockerfile镜像

2023-11-19

目前我知道的自制镜像有2种方式,根据容器制作镜像和根据Dockerfile制作镜像。

根据现成的容器制作镜像

适用于已经有一个现成的容器已经满足需求的情况

% docker ps -a
CONTAINER ID        IMAGE                                                      COMMAND                  CREATED             STATUS                      PORTS                               NAMES
ccc3b12075a6        ubuntu:16.04                                               "/bin/bash"              10 minutes ago      Up 10 minutes                                                   ubuntu1604

% docker image ls
REPOSITORY                                 TAG                 IMAGE ID            CREATED             SIZE
ubuntu                                     16.04               005d2078bdfa        2 weeks ago         125MB

% docker commit ccc3b12075a6 lzcubuntu1604:0.1
sha256:bb5a17051a6c574062299f0e9a422f5d7bdcdaa8c431ce6d816877253552cc71

% docker image ls
REPOSITORY                                 TAG                 IMAGE ID            CREATED             SIZE
lzcubuntu1604                              0.1                 bb5a17051a6c        4 seconds ago       288MB
ubuntu                                     16.04               005d2078bdfa        2 weeks ago         125MB

% docker run -itd --name lzcubuntu1604  -v /Users/mac/work:/root/work  lzcubuntu1604:0.1
fb280dfd3c4c522e511212b491f2add7d2e8924b0cbb04a43580ca73a2870729

% docker ps -a
CONTAINER ID        IMAGE                                                      COMMAND                  CREATED             STATUS                      PORTS                               NAMES
fb280dfd3c4c        lzcubuntu1604:0.1                                          "/bin/bash"              5 seconds ago       Up 4 seconds                                                    lzcubuntu1604
ccc3b12075a6        ubuntu:16.04                                               "/bin/bash"              15 minutes ago      Up 15 minutes                                                   ubuntu1604

% docker exec -it lzcubuntu1604 bash

实际案例
https://blog.csdn.net/hl_java/article/details/83721183?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158933777619725222434861%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=158933777619725222434861&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_v2~rank_v25-2-83721183.nonecase&utm_term=docker

根据Dockerfile制作镜像

适用于基于某个基线版本来制作镜像的情况

% vi ~/work/docker/lzcubuntu/Dockerfile
# base image
FROM ubuntu:16.04

# MAINTAINER
MAINTAINER lzc.java@icloud.com

# RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && \
#    echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >/etc/apt/sources.list && \
#    echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list && \
#    echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list && \
#    echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list


RUN apt-get update 
RUN  apt-get install vim -y && apt-get install g++ -y

RUN echo 'alias psl="ps -eo user,pid,%cpu,%mem,vsz,rss,tty,stat,lstart,etime,command --sort=%cpu |grep java"' >> ~/.bashrc
RUN echo 'alias g++="g++ -std=c++14"' >> ~/.bashrc
RUN echo 'echo "home path is ~"' >> ~/.bashrc
RUN echo 'cd ~' >> ~/.bashrc


% docker build -t lzcubuntu:v1 ~/work/docker/lzcubuntu

Sending build context to Docker daemon  2.048kB
Step 1/8 : FROM ubuntu:16.04
 ---> 005d2078bdfa
Step 2/8 : MAINTAINER lzc.java@icloud.com
 ---> Running in 002194b93593
Removing intermediate container 002194b93593
 ---> 457e6c4eaa32
Step 3/8 : RUN echo 'alias psl="ps -eo user,pid,%cpu,%mem,vsz,rss,tty,stat,lstart,etime,command --sort=%cpu |grep java"' >> ~/.bashrc
 ---> Running in 4cf699aec89a
Removing intermediate container 4cf699aec89a
 ---> 7b69bc414cf6
Step 4/8 : RUN echo 'alias g++="g++ -std=c++14"' >> ~/.bashrc
 ---> Running in da1fbaa4c919
Removing intermediate container da1fbaa4c919
 ---> 3d7dcded573a
Step 5/8 : RUN echo 'echo "home path is ~"' >> ~/.bashrc
 ---> Running in 8ab5a886c362
Removing intermediate container 8ab5a886c362
 ---> 3fdfc97ed09c
Step 6/8 : RUN echo 'cd ~' >> ~/.bashrc
 ---> Running in f34b9f8ff87a
Removing intermediate container f34b9f8ff87a
 ---> a39d09bb72ec
Step 7/8 : RUN apt-get update
 ---> Running in 235564d10a0e
Get:1 http://security.ubuntu.com/ubuntu xenial-security InRelease [109 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]
Get:3 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [1103 kB]
Get:4 http://security.ubuntu.com/ubuntu xenial-security/restricted amd64 Packages [12.7 kB]
Get:5 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [626 kB]
Get:6 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packages [6677 B]
Get:7 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]
Get:8 http://archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]
Get:9 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages [1558 kB]
Get:10 http://archive.ubuntu.com/ubuntu xenial/restricted amd64 Packages [14.1 kB]
Get:11 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages [9827 kB]
Get:12 http://archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages [176 kB]
Get:13 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [1470 kB]
Get:14 http://archive.ubuntu.com/ubuntu xenial-updates/restricted amd64 Packages [13.1 kB]
Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [1030 kB]
Get:16 http://archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [19.7 kB]
Get:17 http://archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages [7942 B]
Get:18 http://archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [8807 B]
Fetched 16.4 MB in 1min 21s (203 kB/s)
Reading package lists...
Removing intermediate container 235564d10a0e
 ---> da8f992b18d9
Step 8/8 : RUN  apt-get install vim -y && apt-get install g++ -y
 ---> Running in f8197dddd867
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
  file libexpat1 libgpm2 libmagic1 libmpdec2 libpython3.5 libpython3.5-minimal
  libpython3.5-stdlib libsqlite3-0 libssl1.0.0 mime-support vim-common
  vim-runtime
Suggested packages:
  gpm ctags vim-doc vim-scripts vim-gnome-py2 | vim-gtk-py2 | vim-gtk3-py2
  | vim-athena-py2 | vim-nox-py2
......
After this operation, 58.4 MB of additional disk space will be used.
Setting up g++ (4:5.3.1-1ubuntu1) ...
update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode
Setting up manpages-dev (4.04-2) ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...
Removing intermediate container f8197dddd867
 ---> a37345ce2d96
Successfully built a37345ce2d96
Successfully tagged lzcubuntu:v1

制作好镜像后,剩下的启动与进入容器跟之前的步骤是一致的

docker run -itd --name lzcubuntu1604v1  -v /Users/mac/work:/root/work  lzcubuntu:v1
docker exec -it lzcubuntu1604v1 bash

实际案例
https://blog.csdn.net/hl_java/article/details/86248095?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158933781219724846462901%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=158933781219724846462901&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_v2~rank_v25-1-86248095.nonecase&utm_term=dockerfile

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker入门实践,制作Dockerfile镜像 的相关文章

随机推荐

  • 时间戳获取

  • 在Nuxt应用程序中关闭webpack-hot-middleware客户端覆盖

    有时候 因为代码的语法错误 nuxt界面会弹出 但是 有时候因为缓等原因 即使修复了语法错误 这个提示错误的界面仍然存在 那么 出现这种情况 怎么禁止出这个界面弹出 该如何关闭它呢 在nuxt config js当中配置 overlay f
  • Linux-MYSQL

    1 C语言连接mysql 读 写 2 视图 索引 事务 端口 3306 一 基本操作 1 源码安装 2 命令安装 sudo su gt apt install mysql server 查看进程是否再运行 service mysql sta
  • 20天学会Java-基础阶段笔记

    视频地址 https www bilibili com video BV1Cv411372m 此笔记是 P1 P85 1 开始 1 1 注释 理解 注释是对代码的解释和说明文字 可以提高程序的可读性 因此在程序中添加必要的注释文字十分重要
  • 【千律】C++基础:通过递归函数计算N的阶乘

    include
  • 修改照片尺寸25mm*35mm

    打开方式 画图 gt 调整图片大小 选择像素 gt 修改为295 413即可
  • OpenCloudOS 8 安装rabbitMQ 和Docker

    文章目录 安装环境 Docker CE 安装rabbitMq 安装步骤 1 引入签名 2 为 RabbitMQ 和 Modern Erlang 添加 Yum 仓库 3 更新yum元数据 缓存rabbitmq相关的仓库数据 4 yum安装依赖
  • vue + moment 实现倒计时

    示例 代码 span countDown endDate span 引入日期插件 import moment from moment export default data return now moment endDate 2019 05
  • Windows和iPad传输

    一 电脑操作 1 新建文件夹 2 设置文件夹的属性 选着共享 3 设置高级共享 权限选择完全控制 4 选择共享 选择Everyone 5 在windows搜索栏中输入cmd 打开命令提示符窗口 6 输入ipconfig回车 7 记住你的ip
  • python爬取豆瓣电影json数据

    由于豆瓣里的电影都有专属的id 获取到id后可以进一步爬取其他页面的内容 首先来到主界面 https movie douban com 观察网页 点击 选电影 进入需要爬取的界面 打开Chrome开发模式 并下拉网页观察新生成的文件 可以观
  • Cause: java.sql.SQLIntegrityConstraintViolationException: Column ‘xxx‘ cannot be null

    1 报错信息 2 定位错误的范围 SQL insert into business businessId password salt businessName businessAddress businessExplain starPric
  • 【基于Cocos Creator实现的赛车游戏】9.实现汽车节点的控制逻辑

    转载知识星球 深度连接铁杆粉丝 运营高品质社群 知识变现的工具 项目地址 赛车小游戏 基于Cocos Creator 3 5版本实现 课程的源码 基于Cocos Creator 3 5版本实现 在上一节的课程中 您已经实现了通过触控给刚体施
  • RCP系列-第一章 环境安装

    RCP系列文章 第一章 Matlab安装 Matlab安装 RCP系列文章 前言 一 Matlab 获取 二 安装 1 解压 2 打开解压后的文件夹中的 R2018b win64 文件夹 3 鼠标右击 setup 选择 以管理员身份运行 4
  • oswatch的安装和使用

    author skate time 2011 08 06 oswatch的安装和使用 1 下载和安装 oswatch的安装与使用也比较简单 和nmon一样 都是下载后直接解压就可以使用的 oswatch是通过调用系统的命令完成信息的收集 命
  • 【Transformer系列(3)】 《Attention Is All You Need》论文超详细解读(翻译+精读)

    前言 哒哒 时隔好久终于继续出论文带读了 这次回归当然要出一手王炸呀 没错 今天我们要一起学习的就是传说中的Transformer 在2021年Transformer一经论文 Attention is All You Need 提出 就如龙
  • java数组学习

    2021 2 2 数组 一维数组的使用 1 一维数组的声明和初始化 2 如何调用数组的指定位置的元素 3 如何获取数组的长度 4 如何遍历数组 5 数组元素的默认初始化值 6 数组的内存解析 package day01 import jav
  • PyTorch-12 GAN、WGAN

    PyTorch 12 生成对抗网络 GAN WGAN 参考 https zhuanlan zhihu com p 34287744 GAN模型的目标函数如下 GAN模型优化训练 在训练过程中 生成网络的目标就是尽量生成真实的图片去欺骗判别网
  • ubuntu18.04 桌面卡死解决方法

    转载 https blog csdn net ATOOHOO article details 88169508 两个月关机 放个周末两天回来 使用系统文件夹很卡 直到因为复制文件卡死 内存和交换机空间都没满 第二次桌面又卡 因为心急 或者因
  • CUDA的下载安装

    大家好 下面将进行CUDA的下载安装 下载安装的详细步骤描述如下 1 CUDA下载 https download csdn net download qq 41104871 87462747 2 CUDA安装 1 首先 需要解压缩下载好的C
  • docker入门实践,制作Dockerfile镜像

    目前我知道的自制镜像有2种方式 根据容器制作镜像和根据Dockerfile制作镜像 根据现成的容器制作镜像 适用于已经有一个现成的容器已经满足需求的情况 docker ps a CONTAINER ID IMAGE COMMAND CREA