镜像

docker利用Dockerfile来制作镜像

两盒软妹~` 提交于 2020-03-23 23:46:00
docker利用Dockerfile来制作镜像   在前面的例子(docker tomcat镜像制作)中,我们从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低。所以就需要一 种文件或脚本,我们把想执行的操作以命令的方式写入其中,然后让docker读取并分析、执行,那么重复构建、更新将变得很方便,所以Dockerfile就此诞生了。 常用参数: FROM命令。用法,FROM <image>:<tag>。FROM命令告诉docker我们构建的镜像是以哪个(发行版)镜像为基础的 RUN命令。用法RUN <command>。RUN 后面接要执行的命令,比如,我们想在镜像中安装vim,只需在Dockfile中写入RUN yum install -y vim ENV命令。用法,ENV <key> <value>。ENV命令主要用于设置容器运行时的环境变量 ADD命令。用法,ADD <src> <dest>。ADD主要用于将宿主机中的文件添加到镜像中 1.建目录并将tomcat和jdk拷贝到主机 root@localhost software]# mkdir -p /root/software [root@localhost software]# cd /root/software [root@localhost software]#

Docker基础

痴心易碎 提交于 2020-03-23 19:12:31
一、 Docker 简介 Docker 是一个开源的应用容器引擎,可以快速构建一致的开发环境。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。 二、 下载Docker和Docker-compose yum install docker curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose service docker start 三、 Docker 命令大全 docker container ls -a #查看container信息 docker exec -it containerID bash #进入container docker run -p 4000:80 imageName #将机器的 4000 端口映射到容器的 80 端口 docker run -d -p 4000:80 imageName # 内容相同,但在分离模式下 docker ps # 查看所有正在运行的容器的列表 docker stop containerID # 平稳地停止指定的容器

第15 章 : 深入解析 Linux 容器

家住魔仙堡 提交于 2020-03-23 04:47:29
深入解析 Linux 容器 今天的内容主要分成以下三个部分 资源隔离和限制; 容器镜像的构成; 容器引擎的构成; 前两个部分就是资源隔离和限制还有容器镜像的构成,第三部分会以一个业界比较成熟的容器引擎为例去讲解一下容器引擎的构成。 容器 容器是一种轻量级的虚拟化技术,因为它跟虚拟机比起来,它少了一层 hypervisor 层。先看一下下面这张图,这张图简单描述了一个容器的启动过程。 最下面是一个磁盘,容器的镜像是存储在磁盘上面的。上层是一个容器引擎,容器引擎可以是 docker,也可以是其它的容器引擎。引擎向下发一个请求,比如说创建容器,然后这时候它就把磁盘上面的容器镜像,运行成在宿主机上的一个进程。 对于容器来说,最重要的是怎么保证这个进程所用到的资源是被隔离和被限制住的,在 Linux 内核上面是由 cgroup 和 namespace 这两个技术来保证的。接下来以 docker 为例,来详细介绍一下资源隔离和容器镜像这两部分内容。 一、资源隔离和限制 namespace namespace 是用来做资源隔离的,在 Linux 内核上有七种 namespace,docker 中用到了前六种。第七种 cgroup namespace 在 docker 本身并没有用到,但是在 runC 实现中实现了 cgroup namespace。 我们先从头看一下: 第一个是 mount

Harbor安装与Https配置

喜欢而已 提交于 2020-03-22 23:44:59
Harbor简介: Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。 Harbor下载: 国外下载地址: https://github.com/goharbor/harbor/releases 国内下载地址: http://harbor.orientsoft.cn/ docker-compose,下载地址, https://github.com/docker/compose/releases 注:Harbo需要安装docker,及docker-compose,安装方法这里不再细说。 1、解压及修改配置文件 # tar zxvf harbor-offline-installer-v1.5.1.tgz # cd harbor # vim harbor.cfg 根据需要配置相应的访问ip,密码等 2、准备配置文件 # ./prepare 3、安装 # ./install.sh 安装成功后,访问配置ip即可 4、端口修改 因为harbor默认端口为80

Docker--02 Dockerfile自动构建Docker镜像

痞子三分冷 提交于 2020-03-22 18:11:20
目录 Dockerfile自动构建Docker镜像 1.为什么自己制作镜像? 2. 镜像分为几类: 3. Dockerfile操作命令说明 4. 制作镜像步骤: 5. dockerfile编写技巧 6. 使用Dockerfile创建云盘 6.1. 准备需要的文件 6.2 编写dockerfile 6.3 构建新镜像 6.4 基于新镜像运行容器 6.5编写构建,启动脚本 Dockerfile自动构建Docker镜像 1.为什么自己制作镜像? 安全。 别人定义的镜像安全性不可控。 按需定制。 根据现有的环境自制镜像。 环境一致性。 要与线上的业务环境保持一致。 标准化。 2. 镜像分为几类: 基础镜像。 例如: centos、 ubuntu 、 apline 中间件镜像。 例如: java、 tomcat、 nginx等。 应用镜像。 例如: jenkins、 zabbix。 3. Dockerfile操作命令说明 Docker通过对于在Dockerfile中的一系列指令的顺序解析实现自动的image的构建   通过使用build命令,根据Dockerfiel的描述来构建镜像   通过源代码路径的方式   通过标准输入流的方式 Dockerfile指令:   只支持Docker自己定义的一套指令,不支持自定义   大小写不敏感,但是建议全部使用大写  

Docker(五):镜像

爷,独闯天下 提交于 2020-03-21 22:34:45
一,什么是镜像? Docker的镜像文件是由文件系统叠加而成的。最底端是一个引导文件系统,即bootfs。Docker用户几乎永远没有机会和引导文件有什么交互,实际上,当一个容器启动之后,容器就会被移动到内存中,而创建容器镜像文件中的引导文件系统就会被卸载。 Docker镜像的第二层是root文件系统rootfs,位于引导文件系统之上,rootfs可以是一种或者多种操作系统的文件系统(比如说Debian或者Ubuntu的文件系统)。在传统的Linux引导过程中,root文件系统最先会以只读的方式加载,当引导完成并完成了完整性检查之后,才会切换到读写模式。但是在Docker里,root的文件系统只能为只读状态,并且Docker利用联合加载(union mount)技术又会在root文件系统上加载更多的只读文件系统。联合加载是指一次同时加载多个文件系统,但是外面只能看到一个文件系统。联合加载会将各层文件系统叠加在一起,这样最终的文件系统会包含所有底层的文件和目录。Docker将这样的文件系统称为镜像。一个镜像可以放在另一个镜像的顶部,位于下部的镜像称之为父镜像,可以以此类推,直到最底部,最底部的镜像是基础镜像。最后,当从一个镜像启动容器时,Docker会在该镜像的最顶层加载一个读写文件系统。我们想在Docker中运行的程序就是在这个读写层中执行的。

Docker仓库管理

半城伤御伤魂 提交于 2020-03-21 22:26:20
registry 是官方提供的一个镜像,可以用它来建私有仓库。 1、下载registy 镜像 docker pull registry 2、启动并映射端口 docker run -d -p 5000:5000 registry -p 指定影射端口,左边为宿主机监听端口,右边为容器监听端口 3、给要上传到仓库的镜像打标签 docker tag centos 192.168.220.169:5000/centos ip 为宿主机ip,标签必须 带有仓库的IP:端口 4、更改Docker配置文件daemon.json,指定私有仓库地址 vi /etc/docker/daemon.json 加入以下内容: { "insecure-registries":["192.168.220.169:5000"] } systemctl restart docker docker run -d -p 5000:5000 registry //重新启动registry镜像 5、上传镜像到本地仓库 docker push 192.168.220.169:5000/centos 6、查看已上传的镜像 curl 127.0.0.1:5000/v2/_catalog 7、在另外一台Docker上从docker私有仓库下下载 vim /etc/docker/daemon.json 加入以下内容: {

docker基础

自闭症网瘾萝莉.ら 提交于 2020-03-21 20:45:49
""" # https://labs.play-with-docker.com/ docker pull nginx == daocker pull nginx:latest 2.docker images查看本地有哪些镜像 3.运行: docker -d -p 80:80 run nginx # -d(后台运行) -p指定端口 docker -d -p 81:80 run nginx 4.查看运行了哪些容器: docker ps 5.修改 docker exec -it 9243...(容器id后面可省略)进入对应容器进行修改 6.删除 docker rm -f 容器id 强制删除 7.保存镜像 docker commit 容器id xxx(起个名字) docker images 8.dockerfile vim DOCKERFILE FROM nginx ADD ./ /user/share/ngxinx/html # 创建docker docker build -t xxxx(给名字) docker run -d -p8001:8001 xxxx # --name 指定运行时的名字 -v映射文件 -v `pwd`: /user/share/ngxinx/html 映射当前目录下的文件到制定目录 docker save xxxx >1.tar 9.删除镜像 docker rmi

使用Maven插件构建Docker镜像

青春壹個敷衍的年華 提交于 2020-03-21 20:37:54
使用Maven插件构建Docker镜像 原创: 梦想de星空 macrozheng 6月12日 本文主要介绍如何使用Maven插件将SpringBoot应用打包为Docker镜像,并上传到私有镜像仓库Docker Registry的过程。 Docker Registry Docker Registry 2.0搭建 docker run -d -p 5000:5000 --restart=always --name registry2 registry:2 如果遇到镜像下载不下来的情况,需要修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值,然后重启docker服务: { "registry-mirrors": ["https://registry.docker-cn.com"]} Docker开启远程API 用vim编辑器修改docker.service文件 vi /usr/lib/systemd/system/docker.service 需要修改的部分: ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 修改后的部分: ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0

Docker + webpack 打包前端项目

十年热恋 提交于 2020-03-21 20:37:33
码云代码地址: https://gitee.com/caonimashi/docker_deployment_front_end 构建基础镜像: 1、下载一个 Apline Linux 操作系统 作为基础镜像,约5MB左右. docker pull Apline 2、进入到 Apline 容器内。 docker run -a stdin -a stdout -i -t alpine /bin/sh 进入容器内部. 3、安装好NodeJs,webpack ,npm 环境. apk update apk add nodejs npm install webpack -g (这个注意,默认安装的4.0版本,要根据的项目来安装webpack版本). npm install -g cnpm --registry=https://registry.npm.taobao.org 4、测试安装是否成功. node -v npm -v exit; 退出容器. 5、将容器打包成基础镜像. docker commit --author "shawn" --message "Node基础镜像" 7a012ac764af snode:1.0 6、将容器推送至阿里云镜像仓库.(先注册一个阿里云账号) $ sudo docker login --username=xxx registry.cn-hangzhou