手动构建

1.关键字查找镜像

sudo docker search centos

2.下载基本镜像

sudo docker pull centos

3.启动容器

sudo docker run -d -it --name centos1 -h centos1 -p 91:80 -v /home/root:/my_python -w my_python centos /bin/bash
# 查看已经启动的docker
docker container ls

4.进入容器

sudo docker exec -it 容器id /bin/bash

5.进入更新软件

apt-get update

6.安装软件

yum install -y gcc   等

7.退出

exit

8.停止容器

docker stop 容器id

9.提交镜像

sudo docker commit -m "python3" 73795020d9d8 ubuntu-python3:3.5
73795020d9d8 容器id
ubuntu-python3 名字
3.5 :版本号

dockerfile构建

1.创建Dockerfile文件     D要大写

vim Dockerfile

  

# This is My first Dockerfile
# Version 1.0
# Author: yu # Base image 最基础的镜像
FROM centos # MAINTAINER 维护者 (已弃用) 用LABEL
LABEL maintainer="yu" # ADD 添加文件 COPY也可以文件 但是ADD可以解压缩文件
ADD plist.txt(文件名称,这个路径,同级目录) /usr/local/src(添加到的路径)
ADD pore-8.37.tar.gz /usr/local/src
ADD nginx-1.9.3.tar.gz /usr/local/src # RUN 要干什么 运行shell命令 安装软件和包
RUN yum install -y wget gcc gcc-c++ make openssl-devel
RUN useradd -s /sbin/nologin -M www # 添加用户 # WORKDIR 相当于cd 进入目录 尽量使用绝对目录
WORKDIR /usr/local/src/plist.txt
RUN pip install -r plist.txt
RUN ./configure --prefix=/uer/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/uer/local/src/pcre-8.37 && make && make install
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf # ENV 配置环境变量
ENV PATH /ust/local/nginx/sbin:$PATH # EXPOST 映射端口 还可以设置端口监听是tcp或者udp 默认是tcp tcp可以不写
EXPOST 80/tcp # CMD 执行命令 1.设置容器启动后默认执行的命令参数 2.如果docker run指定了其他命令,cmd命令会被忽略 3.如果定义了多个cmd,只会执行最后一个
CMD ['nginx'] # ENTRYPOINT 设置容器启动时运行的命令 1.让容器以应用程序或者服务的形式运行 2.不会被忽略,一定会执行 3.最佳实践:写一个shell脚本为entrypoint

2.运行Dockerfile文件

docker build -t(取个名称) my_nginx:V2  .(Dockerfile文件路径,也可以写绝对路径)

  

搭建自己的docker镜像的更多相关文章

  1. 搭建apphouse(docker镜像私服)

    1.下载apphouse,地址为http://www.youruncloud.com/soft.html2.上传AppHouse_v1.0.2.tar到服务器并解压3../apphouse_insta ...

  2. kubernetes集群搭建(9):docker 镜像的导入与导出

    由于K8s搭建时官方提供的镜像不FQ是访问不了的,所以搭建过程中很多时间都耗费在去找镜像去了 下面是我搭建k8s集群用到的镜像  没有采用之前我用的二进制文件搭建(dns没成功),这里采用的Kubea ...

  3. TensorFlow(1):使用Docker镜像搭建TensorFlow环境

    1,关于TensorFlow TensorFlow 随着AlphaGo的胜利也火了起来. google又一次成为大家膜拜的大神了.google大神在引导这机器学习的方向. 同时docker 也是一个非 ...

  4. 你必须知道的Docker镜像仓库的搭建

    近期工作中发现用到的容器镜像越来越多(不多的时候没考虑过镜像仓库的问题),同一个容器镜像也存在多个版本,那么镜像仓库的搭建需求就涌现出来,本文就目前的几个常用镜像仓库的搭建进行介绍,我们可以根据需要选 ...

  5. 019.nexus搭建docker镜像仓库/maven仓库

    一.安装docker CE 参考docker doc https://docs.docker.com/install/linux/docker-ce/centos/ 二.docker启动nexus3 ...

  6. python开发笔记-Python3.7+Django2.2 Docker镜像搭建

    目标镜像环境介绍: 操作系统:ubuntu16.04 python版本:python 3.7.4 django版本:2.2 操作步骤: 1.  本地安装docker环境(略)2. 拉取ubunut指定 ...

  7. CentOS7搭建Docker镜像实战

    开发十年,就只剩下这套架构体系了! >>>   一.搭建环境 使用的是VMWare 12虚拟机安装的CentOS7 安装成功后修改ip: 1. ip addr查看相关信息: 2. 修 ...

  8. PyCharm使用之利用Docker镜像搭建Python开发环境

      在我们平时使用PyCharm的过程中,一般都是连接本地的Python环境进行开发,但是如果是离线的环境呢?这样就不好搭建Python开发环境,因为第三方模块的依赖复杂,不好通过离线安装包的方式安装 ...

  9. Python环境搭建、python项目以docker镜像方式部署到Linux

    Python环境搭建.python项目以docker镜像方式部署到Linux 本文的项目是用Python写的,记录了生成docker镜像,然后整个项目在Linux跑起来的过程: 原文链接:https: ...

随机推荐

  1. [LeetCode] 1028. Recover a Tree From Preorder Traversal 从先序遍历还原二叉树

    We run a preorder depth first search on the rootof a binary tree. At each node in this traversal, we ...

  2. [LeetCode] 794. Valid Tic-Tac-Toe State 验证井字棋状态

    A Tic-Tac-Toe board is given as a string array board. Return True if and only if it is possible to r ...

  3. 关于Dev-C++用户所必须知道的知识

    开启这几个警告选项,才能拥有GCC编译器的较为全面的报错和警告 另外,目前Dev-C早已停止更新(停滞在版本号5.1,内置的GCC为4.9版本),且使用其检测数组变量也挺麻烦的,实在不推荐使用.

  4. 黑苹果MacOS安装记录

    https://blog.daliansky.net/macOS-Catalina-10.15-19A583-Release-version-with-Clover-5093-original-ima ...

  5. oracle--报错 ORA-01003,ORA-09817,ORA-01075

    磁盘满了,删除旧文件,即可保证登入成功

  6. JVM系列之三:类装载器子系统

    0. JVM架构图 Java虚拟机主要分为五大模块:类装载器子系统.运行时数据区.执行引擎.本地方法接口和垃圾收集模块. 1. 类的加载 虚拟机类装载器子系统:虚拟机把描述类的数据从class文件加载 ...

  7. 【redis】分布式锁实现,与分布式定时任务

    如果你还不知道redis的基本命令与基本使用方法,请看 [redis]redis基础命令学习集合 写在前面 redis辣么多数据结构,这么多命令,具体一点,都可以应用在什么场景呢?用来解决什么具体的问 ...

  8. ORA-12528: TNS:listener: all appropriate instances are blocking new connections

    Oracle问题:ORA-12528: TNS: 监听程序: 所有适用例程都无法建立新连接 问题原始描述: ORA-12528: TNS:listener: all appropriate insta ...

  9. linux 内核参数tcp_max_syn_backlog对应的队列最小长度

    环境:centos7.4 内核版本3.10 内核参数net.ipv4.tcp_max_syn_backlog定义了处于SYN_RECV的TCP最大连接数,当处于SYN_RECV状态的TCP连接数超过t ...

  10. JSON.parse() 与 JSON.stringify()

    JSON.parse() 方法用来解析JSON字符串,构造由字符串描述的JavaScript值或对象.提供可选的reviver函数用以在返回之前对所得到的对象执行变换(操作). 语法 JSON.par ...