知识点:

1)手动构建镜像

2)Dockerfile快速构建镜像

阿里云yum源
https://opsx.alibaba.com/mirror

镜像制作
nginx镜像实例

创建并运行centos容器

[root@izm5edykqg8tzid352ga0iz mysql]# docker pull centos   //以centos为基础
[root@izm5edykqg8tzid352ga0iz mysql]# docker run -it centos /bin/bash
[root@696cd0ad637b /]# //已经进入容器

更新容器yum源并安装nginx

[root@8ab2b9d7afab yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-7.repo
[root@8ab2b9d7afab yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@8ab2b9d7afab yum.repos.d]# yum -y install nginx

退出该容器,然后基于该容器做一个镜像

[root@izm5edykqg8tzid352ga0iz mysql]# docker commit -m "my nginx" e1edeef7375f(容器名or容器ID) danny/nginx:v1(镜像名:版本号)
sha256:a5d464ef190c80411161ec6193b877eb5592a1961aeb318e341a9f9c46a39d05
[root@izm5edykqg8tzid352ga0iz mysql]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
danny/nginx v1 a5d464ef190c minutes ago MB //基于mynginx容器制作的镜像
docker.io/nginx latest 71c43202b8ac days ago MB
docker.io/centos latest 5182e96772bf weeks ago MB
docker.io/alpine latest 11cd0b38bc3c weeks ago 4.41 MB [root@izm5edykqg8tzid352ga0iz mysql]# docker run -dit --name nginxv1 danny/nginx:v1
[root@92c8d3a4bc2a /]#
[root@92c8d3a4bc2a /]# ps -ef //已经进入容器
UID PID PPID C STIME TTY TIME CMD
root : ? :: /bin/bash
root : ? :: ps -ef
[root@92c8d3a4bc2a /]# vim /etc/nginx/nginx.conf //修改配置文件添加 daemon off; //不在后台运行
[root@92c8d3a4bc2a /]# nginx -t //验证配置文件语法是否有误
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@92c8d3a4bc2a /]# exit
exit [root@izm5edykqg8tzid352ga0iz mysql]# docker commit -m "my nginx" 92c8d3a4bc2a danny/nginx:v2 //再次提交修改版本v2
sha256:062c8ef6e694b94fec7213bc8c65a055d75dc968fe2b671d97826381e0259f48 [root@izm5edykqg8tzid352ga0iz mysql]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
danny/nginx v2 062c8ef6e694 seconds ago MB //修改后提交的版本
danny/nginx v1 a5d464ef190c minutes ago MB
docker.io/nginx latest 71c43202b8ac days ago MB
docker.io/centos latest 5182e96772bf weeks ago MB
docker.io/alpine latest 11cd0b38bc3c weeks ago 4.41 MB [root@izm5edykqg8tzid352ga0iz mysql]# docker run -it -p : danny/nginx:v2 /usr/sbin/nginx //启动v2版本的容器
08df10e92f9df846a840d61d10d07c045397e40ff06d9b4afdc09e4840266d23 [root@izm5edykqg8tzid352ga0iz mysql]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
08df10e92f9d danny/nginx:v2 "/usr/sbin/nginx" seconds ago Up seconds 0.0.0.0:->/tcp optimistic_bardeen

然后就可以通过82端口访问了 http://IP:82

Dockerfile构建(快速构建镜像)

常用指令
FROM   指定基础镜像
MAINTAINER   维护者信息
RUN   加在命令前执行命令
ADD   copy文件,会自动解压
WORKDIR   相当于cd进目录
VOLUME   目录挂载
EXPOSE    端口

vim /opt/dockerfile/nginx/dockerfile
#This docker file
#VERSION
#Author:danny
#Base image
FROM centos #
MAINTAINER danny danny@qq.com #Commands
RUN rpm -ivh https://mirrors.aliyun.com/centos/7.5.1804/extras/x86_64/Packages/epel-release-7-9.noarch.rpm RUN yum -y install nginx ADD index.html /usr/share/nginx/html/index.html #ADD会自动解压 RUN echo "daemon off;" >> /etc/nginx/nginx.conf EXPOSE CMD ["nginx"] [root@izm5edykqg8tzid352ga0iz nginx]# docker build -t mynginx:v3 /opt/dockerfile/nginx/

查看镜像制作结果

[root@izm5edykqg8tzid352ga0iz nginx]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mynginx v3 3cf3c3308849 minutes ago MB
danny/nginx v2 062c8ef6e694 hours ago MB
danny/nginx v1 a5d464ef190c hours ago MB
docker.io/nginx latest 71c43202b8ac days ago MB
docker.io/centos latest 5182e96772bf weeks ago MB
docker.io/alpine latest 11cd0b38bc3c weeks ago 4.41 MB 制作并启动容器
[root@izm5edykqg8tzid352ga0iz nginx]# docker run -dit -p : --name mynginx_1 mynginx:v3 /usr/sbin/nginx
c373c95329937126d3e879e78c24843f026547975185ce1b6ea655f8f8d5420d
[root@izm5edykqg8tzid352ga0iz nginx]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c373c9532993 mynginx:v3 "nginx" seconds ago Up seconds 0.0.0.0:->/tcp mynginx_1 [root@izm5edykqg8tzid352ga0iz nginx]# curl -I http://localhost:82
HTTP/1.1 OK
...

docker学习笔记二的更多相关文章

  1. docker学习笔记二:常用命令

    docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...

  2. Docker学习笔记二(linux下安装Docker)

    Docker学习笔记二(linux下安装Docker) 1.在线安装linux Docker 这种方式首先要保证linux 环境下可以上网,当然,小编是在自己的电脑上安装了虚拟机,在虚拟机上安装了,l ...

  3. Docker学习笔记二 使用镜像

    本文地址:https://www.cnblogs.com/veinyin/p/10408363.html  Docker运行容器前,需本地存在对应镜像,若没有则Docker从镜像仓库下载该镜像.  镜 ...

  4. Docker学习笔记二:Docker常用命令及提升拉取镜像的速度

    一.Docker命令: 1.docker images   //命令用来查看docker中所包含的镜像信息 2.docker ps -a    //命令用来查看docker中所包含所有容器信息(运行状 ...

  5. Docker 学习笔记(二)

    进入当前正在运行的容器 # 我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置 # 命令: docker exec -it 容器 id bashshell 测试 我们通常容器都是使用后台方 ...

  6. Docker学习笔记 - Docker容器内部署redis

    Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...

  7. Docker学习笔记总结

    Docker学习笔记 https://yeasy.gitbooks.io/docker_practice/content/   一 环境搭建 Ubuntu安装 .添加软件源的GPG密钥 curl -f ...

  8. Docker学习笔记 — Docker私有仓库搭建

    Docker学习笔记 — Docker私有仓库搭建   目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2   和Mavan的管理一样,Dockers ...

  9. Docker学习笔记之--安装mssql(Sql Server)并使用Navicat连接测试(环境:centos7)

    前一节演示如何使用Nginx反向代理 .net Core项目容器,地址:Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(二) ...

随机推荐

  1. vmware panic(CPU 0 caller 0x)launchd exited

    编辑VMX文件,在最后添加一行(g4560测试通过):cpuid.1.eax = "00000000000000010000011010100101"

  2. Sphinx 生成 Windows 帮助文件 (.chm文件)

    本文不介绍 Sphinx 的用法,只简要罗列 Windows 下生成 .chm 文件的步骤. 0. 首先检查机器是否安装了 HTML Help Workshop 软件,一般安装路径应该是 C:\Pro ...

  3. springboot 创建非web项目及数据源简单使用

    项目组马上要使用springboot来重构程序,首先要对几个比较小的非web项目重构,所以新手入门,简单做了个小例子 代码结构如下: dao层 package com.mysping.myboot00 ...

  4. python日志等级输出删选

    有时候我们会删选一下输出的信息 当做日志进行文件保存 但是我们程序中有可能有自己不想存到日志文件中的输出信息 我们要做一些的删选  然后进行保存 代码如下: #!/usr/bin/python # - ...

  5. HyperLedger Fabric 1.0的Transaction处理流程

    如果把区块链比作一个只能读写,不能删改的分布式数据库的话,那么事务和查询就是对这个数据库进行的最重要的操作.以比特币来说,我们通过钱包或者Blockchain.info进行区块链的查询操作,而转账行为 ...

  6. linux内存源码分析 - 伙伴系统(释放页框)

    本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 翻了一下之前的文章,发现竟然忘记写内核是如何释放页框的,罪过. 释放页框很简单,其实只有几步 检查此页是否被其他 ...

  7. Android Studio 2.2新增布局——ConstraintLayout完全解析

    ,但是Button并没有紧贴到布局的最右侧,这是为什么呢?实际上,Android Studio给控件的每个方向上的约束都默认添加了一个16dp的间距,从Inspector上面也可以明显地看出来这些间距 ...

  8. ASP.NET Core 与支付宝开发文档

    一.目录 ASP.NET Core 2.0 使用支付宝PC网站支付 ASP.NET Core 2.0 支付宝当面付之扫码支付 常见使用问题解答 已有多个公司数个项目用本组件并上线,稳定使用. 二.项目 ...

  9. Autofac容器对象实例的几种生命周期类型

    实例范围决定了如何在同一服务的请求之间共享实例. 请注意,您应该熟悉生命周期范围的概念,以便更好地理解此处发生的情况. 当请求服务时,Autofac可以返回单个实例(单实例作用域),新实例(每个依赖作 ...

  10. 【开源】微信小程序、小游戏以及 Web 通用 Canvas 渲染引擎 - Cax

    Cax 小程序.小游戏以及 Web 通用 Canvas 渲染引擎 Github → https://github.com/dntzhang/cax 点我看看 DEMO 小程序 DEMO 正在审核中敬请 ...