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)(二) ...
随机推荐
- HashMap 1.8
1.重要参数 和1.7中的相同,不在赘述.变化之处在于table不在是Entry类型而是Node类型,即1.8中拉链法中的节点类型变为Node.但其实结构并没有发生很大的变化,1.8中的HashMap ...
- 2018Action Recognition from Skeleton Data via Analogical Generalization over Qualitative Representations
论文标题: 来源/作者机构情况: Northwestern University Thirty-Second AAAI Conference on Artificial Intelligence, 2 ...
- day95
Linux基本部署配置及常见扩展应用 Linux软件包安装方法 1. 安装: 整个安装过程可以分为以下几步: 1) 取得应用软件:通过下载.购买光盘的方法获得: 2)解压缩文件:一般tar包,都会再做 ...
- 分布式系统消息中间件——RabbitMQ的使用基础篇
分布式系统消息中间件——RabbitMQ的使用基础篇
- Java之文本文件的创建和读取(含IO流操作)
工具类:对文件的读取,创建.直接复制拿来用! package cn.zyzpp.util; import java.io.BufferedReader; import java.io.Buffered ...
- @Vue/Cli 3 Invalid Host header 检测关闭
Invalid Host header 在本地开发等一般情况下,无论是 local,还是 ip,或者是 0.0.0.0,在 cli 中都默认为合法的,但是有些场景可能会被不支持,比如远程开发,或者是云 ...
- centos 7 java1.8安装
java安装 检查版本信息,如果版本小于1.8,执行以下命令 java -version java version "1.8.0_144"Java(TM) SE Runtime E ...
- Git简易的命令入门
Git 全局设置: git config --global user.name "kszsa" git config --global user.email "duyon ...
- 七、Json格式的对象都可以通过遍历来获得里面的value值
- jquery判断<inpur type="checkbox" checked>是否被选择
建议使用 $('#isCheck').attr('checked') 这样的,利于判断 console.log($('#isCheck').prop('checked')); 可以看出prop当che ...