知识点:

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. @property和@score.setter的用法

    @property 把属性装饰成get方法 给属性赋值时,会自动调用@property装饰的方法 只设置属性的@property 时,属性为只读 @score.setter 把属性装饰成set方法 给 ...

  2. selenium之选项卡管理

    在使用selenium管理浏览器的时候遇到一些小问题,现将这些小问题作一下总结: (1)browser是什么? from selenium import webdriver browser = web ...

  3. 五、Oracle 分组查询、视图

    一.分组函数1.avg:平均分2.sum:求和3.max:最大值4.min:最小值注意:前面四个必须针对数值字段,且参数只能是一个5.count:求个数 二.分组查询1.语法是 group by 分组 ...

  4. 16 python 初学(生成器)

     列表生成器(列表生成式): 使用此种方式生成的列表会放在内存中占用内存 a = [x*2 for x in range(1, 11)] print(a) # >>> [2, 4, ...

  5. python文件流

    打开文件 文件的基本方法 迭代文件内容 打开文件 打开文件,可以使用自动导入的模块io中的函数open.函数open将文件名作为唯一必不可少的参数,并返回一个文件对象.如果只指定一个文件名,则获得一个 ...

  6. jar包读取外部文件

    public static void main(String[] args) { String path1 = System.getProperty("user.home");// ...

  7. Java8-1-新特性_Lambda表达式

    最近实在是闲的蛋疼, 突然想起前一段时间使用Lambda表达式觉得惊为天人, 所以就去仔细的学习了一下, 整理出一份博客出来供大家观赏. 一. 什么是lambda表达式. Lambda 是一个匿名函数 ...

  8. Centos7 安装 Redis

    关闭防火墙:systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启 ...

  9. nginx负载均衡精简配置实例

    [root@localhost ~]# vim nginx.conf user nginx; worker_processes ; error_log /var/log/nginx/error.log ...

  10. 计算机名称改名之后,tfs连接问题

    计算机名称改名之后,我们发现tfs连接会有问题 打开vs下的“开发人员命令提示”执行下面两条语句: 1.tf workspaces 2.tf workspaces /collection:http:/ ...