《Docker技术入门与实战》读书笔记与实践

创建支持SSH的服务的镜像

Dockerfile内容

FROM ubuntu

MAINTAINER from www.mtian.net by mtiannet

RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted" > /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial universe" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse" >> /etc/apt/sources.list

RUN apt-get update -y
RUN apt-get install openssh-server -y

RUN mkdir -p /var/run/sshd
RUN mkdir -p /root/.ssh

ADD authorized_keys /root/.ssh/authorized_keys
ADD run.sh /run.sh
RUN chmod 755 /run.sh

EXPOSE 22
CMD ["/run.sh"]

run.sh文件内容

#!/bin/bash

/usr/sbin/sshd -D

生成images

sudo docker build -t sshd:dockerfile .

运行容器

sudo docker run -d -p 10122:22 sshd:dockerfile

链接到容器ssh

ssh [email protected] -p 10122

创建Apache镜像

FROM sshd:dockerfile

MAINTAINER from www.mtian.net by mtiannet

ENV DEBIAN_FRONTEND noninteractive

RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted" > /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial universe" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse" >> /etc/apt/sources.list

RUN apt-get update -y

RUN apt-get -yq install apache2 && rm -rf /var/lib/apt/lists/*

RUN echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractvie tzdata

ADD run.sh /run.sh
RUN chmod 755 /*.sh

RUN mkdir -p /var/lock/apache2 && mkdir -p /app && rm -rf /var/www/html && ln -s /app /var/www/html
COPY sample/ /app

ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2
ENV APACHE_PID_FILE /var/run/apache2.pid
ENV APACHE_RUN_DIR /var/run/apache2
ENV APACHE_LOCK_DIR /var/lock/apache2
ENV APACHE_SERVERADMIN [email protected]
ENV APACHE_SERVERNAME localhost
ENV APACHE_SERVERALIAS docker.localhost
ENV APACHE_DOCUMENTROOT /var/www

EXPOSE 80
WORKDIR /app
CMD ["/run.sh"]

#!/bin/bash
/usr/sbin/sshd &

exec apache2 -D FOREGROUND

sudo docker build -t apache:ubuntu .
sudo docker run -i -d -p 8000:80 -p 2222 -e APACHE_SERVERNAME=test -v `pwd`/www:/var/www:ro apachee:ubuntu

时间: 2024-10-11 20:43:04

《Docker技术入门与实战》读书笔记与实践的相关文章

《Docker技术入门与实战》pdf

下载地址:网盘下载 内容简介  · · · · · · [编辑推荐] <Docker技术入门与实战>是中国首部docker著作,一线Docker先驱实战经验结晶,来自IBM和新浪等多位技术专家联袂推荐! <Docker技术入门与实战>结合企业生产环境,深入浅出地剖析 Docker 的核心概念.应用技巧.实现原理以及生态环境,为解决各类问题提供了有价值的参考. [内容简介] 在云计算时代,开发者将应用转移到云上已经解决了硬件管理的问题,然而软件配置和管理相关的问题依然存在.Docke

赞一个 kindle电子书有最新的计算机图书可买了【Docker技术入门与实战】

最近对docker这个比较感兴趣,找一个比较完整的书籍看看,在z.cn上找到了电子书,jd dangdang看来要加油啊 Docker技术入门与实战 [Kindle电子书] ~ 杨保华 戴王剑 曹亚仑 (作者) http://www.amazon.cn/Docker技术入门与实战-杨保华-戴王剑-曹亚仑/dp/B00SMJ0VFA/ref=sr_1_2?s=digital-text&ie=UTF8&qid=1435217727&sr=1-2&keywords=docker

《Docker技术入门与实战第3版2018版》高清中文PDF下载

<Docker技术入门与实战第3版2018版>高清中文PDF下载资料简介:本书从Docker基本原理开始,深入浅出地讲解Docker的构建与操作,内容系统全面,可帮助开发人员.运维人员快速部署Docker应用.本书分为四大部分:基础入门.实战案例.进阶技能.开源项目,*部分(第1-8章)介绍Docker与虚拟化技术的基本概念,包括安装.镜像.容器.仓库.数据卷.端口映射等:第二部分(第9-16章)通过案例介绍Docker的应用方法,包括与各种操作系统平台.SSH服务的镜像.Web服务器与应用.

Docker技术入门与实战下载 &#182772;

下载地址: http://www.gqylpy.com/di/8 <Docker技术入门与实战.pdf>PDF高清完整版-下载 本书从Docker基本原理开始,深入浅出地讲解Docker的构建与操作,内容系统全面,可帮助开发人员.运维人员快速部署Docker应用.本书分为四大部分:基础入门.实战案例.进阶技能.开源项目,部分(第1-8章)介绍Docker与虚拟化技术的基本概念,包括安装.镜像.容器.仓库.数据卷.端口映射等:第二部分(第9-16章)通过案例介绍Docker的应用方法,包括与各种

《Docker技术入门与实战》读书笔记

更改ubuntu 的源 deb http://mirrors.aliyun.com/ubuntu/ xenial main restricteddeb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricteddeb http://mirrors.aliyun.com/ubuntu/ xenial universedeb http://mirrors.aliyun.com/ubuntu/ xenial-updates univ

R实战读书笔记四

第三章 图形入门 本章概要 1 创建和保存图形 2 定义符号.线.颜色和坐标轴 3 文本标注 4 掌控图形维数 5 多幅图合在一起 本章所介绍内容概括如下. 一图胜千字,人们从视觉层更易获取和理解信息. 图形工作 R具有非常强大的绘图功能,看下面代码. > attach(mtcars) > plot(wt, mpg) > abline(lm(mpg~wt)) > title("Regression of MPG on Weight") > detach(m

Docker从入门到实战(二)

一步一步走,写小白都能看懂的文章,将持续更新中,敬请期待! Docker从入门到实战(二) 一:什么是docker Docker是一个开源的应用容器引擎,开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到主流的Linux.macOS.Windows机器上,实现虚拟化. Docker用Go语言写成,是一个重新定义了程序开发测试.交付和部署过程的开放平台. 二:Docker与虚拟机的区别 虚拟机和Docker最明显的差别是虚拟机需要安装操作系统(安装Guest OS)才能执行应用程序

JAVA并发编程实战 读书笔记(二)对象的共享

<java并发编程实战>读书摘要 birdhack 2015年1月2日 对象的共享 JAVA并发编程实战读书笔记 我们已经知道了同步代码块和同步方法可以确保以原子的方式执行操作,但一种常见的误解是,认为关键之synchronized只能用于实现原子性或者确定临界区.同步还有另一个重要的方面:内存可见性. 1.可见性 为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制. 在没有同步的情况下,编译器.处理器以及运行时等都可能对操作的执行顺序进行一些意想不到的调整.在缺乏足够同步的多线程程

docker-9 supervisord 参考docker从入门到实战

参考docker从入门到实战 使用 Supervisor 来管理进程 Docker 容器在启动的时候开启单个进程,比如,一个 ssh 或者 apache 的 daemon 服务.但我们经常需要在一个机器上开启多个服务,这可以有很多方法,最简单的就是把多个启动命令放到一个启动脚本里面,启动的时候直接启动这个脚本,另外就是安装进程管理工具. 本小节将使用进程管理工具 supervisor 来管理容器中的多个进程.使用 Supervisor 可以更好的控制.管理.重启我们希望运行的进程.在这里我们演示