Docker

docker学习-----docker服务的安装

六眼飞鱼酱① 提交于 2021-02-14 18:59:18
docker 以下观点个人理解,只做参考 一、docker本身的优势   1.docker他本身是一个容器,用来方便我们项目打包,做服务器虚拟化,统一开发者环境等多种优势;运行于docker上的项目可以快速迁移。 2.docker的实用性,docker可以在将项目成功的打包后,运行在任意一种部署docker服务的linux系统中 二、docker的服务搭建 1.docker服务的安装(centos7.3) curl -sSL https://get.daocloud.io/docker | sh 2.如果在上一步执行过程中到下载docker服务时出错,那么执行 先执行 yum install docker ,执行完成后,再执行 curl -sSL https://get.daocloud.io/docker | sh 3.因为docker拉取国外的源会比较慢,所以,建议进行换源 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://91c0cc1e.m.daocloud.io 4.如果在安装完成后服务未能成功启动,则vi /etc/sysconfig/selinux ,将selinux的条件改为disabled 3.重启(reboot) 完成后,进行docker的启动(service

Dockerfile构建镜像

时光毁灭记忆、已成空白 提交于 2021-02-14 16:50:45
构建镜像 构建镜像指令:docker build或docker image build Dockerfile 初识: cat >>Dockerfile<<end FROM python:2.7-slim WORKDIR /app ADD . /app RUN pip install -r requirements.txt EXPOSE 80 ENV NAME World CMD ["python", "app.py"] end yum install python2-pip 配置pip国内源 mkdir -p /root/.pip cat >> /root/.pip/pip.conf<<end [global] trusted-host=mirrors.aliyun.com index-url=http://mirrors.aliyun.com/pypi/simple/ end cat >>requirements.txt<<end Flask Redis end cat >> app.py<<end from flask import Flask from redis import Redis, RedisError import os import socket # Connect to Redis redis = Redis(host="redis", db=0,

Docker 数据卷

空扰寡人 提交于 2021-02-14 16:13:23
Docker内部数据与容器互连,通过挂载的形式给docker一个外在的数据存储空间。 数据卷 数据卷可以在容器之间共享和重用 对 数据卷的修改会立马生效 对 数据卷的更新,不会影响镜像 默认一直存在,即使容器被删除 数据卷的使用类似于linux的mount 创建数据卷 terry@terry:~$ docker volume create my-vol my-vol 查看数据卷 terry@terry:~$ docker volume ls DRIVER VOLUME NAME local jenkins_home local my-vol 查看指定数据卷 terry@terry:~$ docker inspect jenkins_home [ { "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/jenkins_home/_data", "Name": "jenkins_home", "Options": {}, "Scope": "local" } ] 启动一个挂载数据卷的容器 docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts 删除数据卷

dockerfile构建镜像

强颜欢笑 提交于 2021-02-14 16:12:40
Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。它们简化了从头到尾的流程并极大的简化了部署工作。Dockerfile从FROM命令开始,紧接着跟随者各种方法,命令和参数。其产出为一个新的可以用于创建容器的镜像。 一、Dockerfile 语法 使用以下的语法可以实现各种各样的镜像 FROM:指定父镜像,可以通过添加多个FROM,在同一个Dockerfile中创建多个镜像 MAINTAINER:维护者信息,可选 RUN:用来修改镜像的命令,可以用来安装程序,当一条RUN完成后,会在当前的镜像上创建一个新的镜像层,接下来的指令会在新的镜像层上执行。有2种形式。 RUN [“apt-get”, “update”],调用exec RUN apt-get update,调用的/bin/sh EXPOSE:用来指明容器内进程对外开放的端口。在docker run的时候可以加-p(可以将EXPOSE中没列出的端口设置为对外开放)和-P(EXPOSE里所指定的端口映射到主机上另外的随机端口???)来设置端口。 ADD:向新容器中添加文件,文件可以是 主机文件:必须是相对Dockerfile所在目录的相对路径(如果是压缩文件,docker会解压缩) 网络文件:URL文件,在创建容器时会下载下来添加到镜像中。(如果是压缩文件,docker不会解压缩)

Docker数据卷

不打扰是莪最后的温柔 提交于 2021-02-14 15:57:05
#1、数据卷概念   默认情况下容器不使用任何 volume。此时容器的数据、文件系统的改动都是发生在最上面的容器层,数据与容器的生命周期同步,随着容器的被删除而被删除。虽然可使用 docker commit 命令将它持久化为一个新的镜像,但无法单独将数据持久化。   生产环境中使用Docker的过程中,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然要求容器要支持对数据的管理操作。   容器中管理数据主要有两种方式:   <font color=#ff6347> 数据卷(Data Volumes) </font>:容器内数据直接映射到本地主机环境;如何在容器内创建数据卷,并且把本地的目录或文件挂载到容器内的数据卷中。   <font color=#ff6347> 数据卷容器(Data Volume Containers) </font>:使用特定容器维护数据卷。如何使用数据卷容器在容器和主机、容器和容器之间共享数据,并实现数据的备份和恢复。 #2、数据卷   数据卷是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似于Linux的mount操作。 数据卷特性 :    (1) 数据卷可以在容器之间共享和重用,容器间传递数据将变得高效方便;    (2) 对数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作;    (3)

Dockerfile构建镜像

ⅰ亾dé卋堺 提交于 2021-02-14 15:54:23
几乎所有的image都是通过Dockerfile生成出来的,使用Dockerfile可以让我们很轻松的构建出一个镜像,我们如果需要部署自己的程序常常也可会Dockerfile把代码和环境构建成一个image进行使用 附上: 喵了个咪的博客: w-blog.cn 官方Git地址: https://github.com/moby/moby 1.DockerFile介绍 以hub.docker中的项目来说,一般作者都会存放这个image对应的Dockerfile,我们也可以直接使用Dockerfile来生成自己的nginx镜像 2.编译自己的nginx Dockerfile可以基于任何镜像的技术上搭建环境,可以基于别人做好的镜像比如Nginx,也可以基于基础镜像比如centos等,这里基于nginx镜像构建出本地的nginx:local并且运行镜像不在启动nginx只是输出一条nginx > vim Dockerfile FROM nginx:1.13.12 CMD ["echo", "nginx"] > docker build -t nginx:local . > docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx local 6ea964efbbc8 10 seconds ago 109 MB > docker run

Dockerfile构建Tomcat镜像

不想你离开。 提交于 2021-02-14 15:29:40
点击蓝字 关注我们 Summer Sunshine 前言:Dockerfile是构建docker镜像常用的方式,dockerfile有自己的语法,每条语句都是镜像的描述文件,通过Dockerfile,让我们对镜像的构建更加方便。 1 Dockerfile的语法解释 Dockerfile 一般分为四部分: From 基础镜像信息, Maintainer 维护者信息, 镜像操作指令, 容器启动时执行指令, ’#’ 为 Dockerfile 中的注释 Docker以从上到下的顺序运行Dockerfile的指令。为了指定基本映像,第一条指令必须是FROM。一个声明以#字符开头则被视为注释。可以在Docker文件中使用RUN,CMD,FROM,EXPOSE,ENV等指令。 如下是常用命令举例: 2 构建 tomcat 镜像 准备工作 首先我们需要选择一个基础镜像,在选择镜像的时候,需要选择合适的镜像,例如构建一个Java应用的镜像,选择一个openjdk镜像作为基础镜像比选择一个alpine镜像作为基础镜像要简单地多,构建的镜像文件越小,程序的启动速度就会越快。由于本次环境在特定的java版本上运行,所以我选择在我的debian基础镜像上安装java+tomcat. 下载基础镜像debian Last login: Mon Jun 15 22:46:48 2020 from 192.168

Dockerfile 之最小化 Java 镜像的常用技巧

折月煮酒 提交于 2021-02-14 14:07:32
背景 随着容器技术的普及,越来越多的应用被容器化。人们使用容器的频率越来越高,但常常忽略一个基本但又非常重要的问题 - 容器镜像的体积。本文将介绍精简容器镜像的必要性并以基于 spring boot 的 java 应用为例描述最小化容器镜像的常用技巧。 精简容器镜像的必要性 精简容器镜像是非常必要的,下面分别从安全性和敏捷性两个角度进行阐释。 安全性 基于安全方面的考虑,将不必要的组件从镜像中移除可以减少攻击面、降低安全风险。虽然 docker 支持用户通过 Seccomp 限制容器内可以执行操作或者使用 AppArmor 为容器配置安全策略,但它们的使用门槛较高,要求用户具备安全领域的专业素养。 敏捷性 精简的容器镜像能提高容器的部署速度。假设某一时刻访问流量激增,您需要通过增加容器副本数以应对突发压力。如果某些宿主机不包含目标镜像,需要先拉取镜像,然后启动容器,这时使用体积较小的镜像能加速这一过程、缩短扩容时间。另外,镜像体积越小,其构建速度也越快,同时还能减少存储和传输的成本。 常用技巧 将一个 java 应用容器化所需的步骤可归纳如下: 编译 java 源码并生成 jar 包。 将应用 jar 包和依赖的第三方 jar 包移动到合适的位置。 本章所用的样例是一个基于 spring boot 的 java 应用 spring-boot-docker,所用的未经优化的

22款终端生产力工具,效率飞起!

我怕爱的太早我们不能终老 提交于 2021-02-14 12:51:41
译文:switowski.com/blog/favorite-cli-tools 程序员在搞开发时, 终端CLI工具 的使用必不可少,往往都是 生产力工具 ,所以今天在此给大家推荐一下比较好用的终端工具。先给大家列个 推荐清单 ,如下图。 高频 CLI 工具推荐 1、fish shell 毋庸置疑,在终端工具中,Shell 是使用最频繁也最重要的工具。过去,我曾经使用过 Bash 和 Z Shell,而如今,这个Fish Shell,也是一个非常优秀的终端 Shell 工具,拥有许多开箱即用的功能,例如语法自动推荐补全、语法高亮显示或使用快捷键在最近访问的文件夹之间来回切换。 下载地址:https://fishshell.com/ 2、Starship 如果必须要从本篇文章中选择一个我最喜欢的终端工具——那非 Starship 莫属。Starship 可以适用于任何 Shell。你只需要安装它,然后在相应的配置文件.bashrc/.zshrc/config.fish添加一行配置,剩下的工作交给它来完成就好了。 它可以做到: 根据你是否在代码仓库中添加了新文件、是否修改了文件、是否暂存了文件等情况,用相应的符号表示 git 仓库的状态。 根据你所在的 Python 项目目录,展示 Python 的版本号,这也适用于 Go/Node/Rust/Elm 等其他编程语言环境。

22 款终端生产力工具,效率飞起!

你说的曾经没有我的故事 提交于 2021-02-14 12:04:03
点击上方 IT牧场 ,选择 置顶或者星标 技术干货每日送达 译文:switowski.com/blog/favorite-cli-tools 程序员在搞开发时, 终端CLI工具 的使用必不可少,往往都是 生产力工具 ,所以今天在此给大家推荐一下比较好用的终端工具。先给大家列个 推荐清单 ,如下图。 高频 CLI 工具推荐 1、fish shell 毋庸置疑,在终端工具中,Shell 是使用最频繁也最重要的工具。过去,我曾经使用过 Bash 和 Z Shell,而如今,这个Fish Shell,也是一个非常优秀的终端 Shell 工具,拥有许多开箱即用的功能,例如语法自动推荐补全、语法高亮显示或使用快捷键在最近访问的文件夹之间来回切换。 下载地址:https://fishshell.com/ 2、Starship 如果必须要从本篇文章中选择一个我最喜欢的终端工具——那非 Starship 莫属。Starship 可以适用于任何 Shell。你只需要安装它,然后在相应的配置文件.bashrc/.zshrc/config.fish添加一行配置,剩下的工作交给它来完成就好了。 它可以做到: 根据你是否在代码仓库中添加了新文件、是否修改了文件、是否暂存了文件等情况,用相应的符号表示 git 仓库的状态。 根据你所在的 Python 项目目录,展示 Python 的版本号,这也适用于 Go