docker学习笔记二
知识点:
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学习笔记二的更多相关文章
- docker学习笔记二:常用命令
docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...
- Docker学习笔记二(linux下安装Docker)
Docker学习笔记二(linux下安装Docker) 1.在线安装linux Docker 这种方式首先要保证linux 环境下可以上网,当然,小编是在自己的电脑上安装了虚拟机,在虚拟机上安装了,l ...
- Docker学习笔记二 使用镜像
本文地址:https://www.cnblogs.com/veinyin/p/10408363.html Docker运行容器前,需本地存在对应镜像,若没有则Docker从镜像仓库下载该镜像. 镜 ...
- Docker学习笔记二:Docker常用命令及提升拉取镜像的速度
一.Docker命令: 1.docker images //命令用来查看docker中所包含的镜像信息 2.docker ps -a //命令用来查看docker中所包含所有容器信息(运行状 ...
- Docker 学习笔记(二)
进入当前正在运行的容器 # 我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置 # 命令: docker exec -it 容器 id bashshell 测试 我们通常容器都是使用后台方 ...
- Docker学习笔记 - Docker容器内部署redis
Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...
- Docker学习笔记总结
Docker学习笔记 https://yeasy.gitbooks.io/docker_practice/content/ 一 环境搭建 Ubuntu安装 .添加软件源的GPG密钥 curl -f ...
- Docker学习笔记 — Docker私有仓库搭建
Docker学习笔记 — Docker私有仓库搭建 目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2 和Mavan的管理一样,Dockers ...
- Docker学习笔记之--安装mssql(Sql Server)并使用Navicat连接测试(环境:centos7)
前一节演示如何使用Nginx反向代理 .net Core项目容器,地址:Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(二) ...
随机推荐
- 极端恢复时用到的几个隐藏参数 Oracle hidden corruption recovery parameters
Oracle hidden corruption recovery parameters Note: Oracle hidden parameters are undocumented and uns ...
- Spring容器的简单实现(IOC原理)
引言:容器是什么?什么是容器?Spring容器又是啥东西?我给Spring容器一个对象名字,为啥能给我创建一个对象呢? 一.容器是装东西的,就像你家的水缸,你吃饭的碗等等. java中能作为容器的有很 ...
- echart自定义浮窗 增加点击事件
一:情景 做一个柱状图,需要在柱状图显示lable,并且浮窗上每个条目可以被点击或者跳转. 我使用的做图插件是echarts,但是echart的浮窗是图片,而且不可以被点击,不能识别html,而且这个 ...
- AI Haar特征
Haar特征,也叫矩形特征,有四种特征(模板):边缘特征.线性特征.中心特征.对角线特征.每种模板都包含黑白两种区域. 模板的特征值=白色区域的像素和-黑色区域的像素和,反映的是图像的灰度变化情况. ...
- Generative Adversarial Nets[Introduction]
0. 背景 通过阅读书籍<Pro Deep Learning with TensorFlow: A Mathematical Approach to Advanced Artificial In ...
- ORACLE存储过程中%TYPE和%ROWTYPE的区别
ORACLE存储过程中%TYPE和%ROWTYPE的区别 在存储过程中%TYPE和%ROWTYPE常用来在PL/SQL中定义变量 因为 t_emp emp%rowtype ;这个语句的意思是 定义一个 ...
- kmeans聚类理论篇
前言 kmeans是最简单的聚类算法之一,但是运用十分广泛.最近在工作中也经常遇到这个算法.kmeans一般在数据分析前期使用,选取适当的k,将数据分类后,然后分类研究不同聚类下数据的特点. 本文记录 ...
- zookeeper-架构设计与角色分工-《每日五分钟搞定大数据》
本篇文章阅读时间5分钟左右 点击看<每日五分钟搞定大数据>完整思维导图 zookeeper作为一个分布式协调系统,很多组件都会依赖它,那么此时它的可用性就非常重要了,那么保证可用性的同 ...
- 程序员修仙之路- CXO让我做一个计算器!!
菜菜呀,个税最近改革了,我得重新计算你的工资呀,我需要个计算器,你开发一个吧 CEO,CTO,CFO于一身的CXO X总,咱不会买一个吗? 菜菜 那不得花钱吗,一块钱也是钱呀··这个计算器支持加减乘除 ...
- Python全栈开发之路 【第十八篇】:Ajax技术
Ajax技术 Ajax = 异步 JavaScript 和 XML. Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 1.jQuery的load()方法 jQuery loa ...