bingoogolapple / bingoogolapple.github.io

个人主页。同时也通过 Issues 记录学习笔记
http://www.bingoogolapple.cn
86 stars 19 forks source link

Docker学习笔记-基础二 #145

Open bingoogolapple opened 7 years ago

bingoogolapple commented 7 years ago

面向产品交付 面向开发环境一致性 面向测试环境一致性 面向运维生产环境一致性 面向自动化、自动化扩容 面向微服务 面向大规模的分布式架构(微信红包)

Docker 数据管理

数据卷

数据卷容器

资源隔离和限制

namespace 资源隔离 cgroup 资源限制

压力测试

wget http://mirrors.aliyun.com/repo/epel-6.repo

FROM centos
ADD epel-6.repo /etc/yum.repos.d/
RUN yum -y install stress && yum clean all
ENTRYPOINT ["stress"]

docker build -t stress . docker run -it -rm stress --cpu 1 后面的 --cpu 1 是 stress 的参数 docker run -it -rm -c 512 stress --cpu 1 street 之前是 docker 容器的参数,-c 默认是 1024 docker run -it -rm -m 128m stress --vm 1 --vm-bytes 120m --vm-hang 0

私有仓库 Docker Registry

docker run -d -p 8080:5000 --name bga-registry registry:2 docker images docker tag nginx localhost:8080/bga-nginx:v1 docker push localhost:8080/bga-nginx:v1 如果提示需要 https,编辑 /etc/sysconfig/docker 在 other_args 参数的最前面添加 --insecure-registry ip地址:端口号 然后再 /etc/init.d/docker restart curl http://localhost:8080/v2/bga-nginx/tags/list 查看本地仓库中的镜像列表 docker images docker rmi localhost:8080/bga-nginx:v1 先删除本机中的镜像 docker pull localhost:8080/bga-nginx:v1 docker run -it --name testregistry localhost:8080/bga-nginx:v1 bash docker stop bga-registry && docker rm -v bga-registry

Docker-Dashboard

bingoogolapple commented 7 years ago

手动构建镜像

yum install -y wget gcc gcc-c++ make openssl-devel
wget https://nginx.org/download/nginx-1.11.8.tar.gz
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-10.21.tar.gz
mv *.gz /usr/local/src
cd /usr/local/src
tar zxf nginx-1.11.8.tar.gz
tar zxf pcre2-10.21.tar.gz
cd nginx-1.11.8
useradd -s /sbin/nologin -M www
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre2-10.21
make
make install
vi /etc/rc.local     最后一行添加 /usr/local/nginx/sbin/nginx

vi /usr/local/nginx/conf/nginx.conf   第一行添加  daemon off;   让 nginx 在前台运行

exit docker commit -m '注释' -a 'bingoogolapple' e887e14cb1e3 bingoogolapple/test:v1

启动 nginx 并让 nginx 在前台运行

nginx -g "daemon off;"
bingoogolapple commented 7 years ago

Dockerfile 方式构建

# This is My first Dockerfile
# Version 1.0
# Author: bingoogolapple

# FROM 它的妈妈是谁(基础镜像)
FROM centos
# MAINTAINER 告诉别人,你创造了它(维护者信息)
MAINTAINER bingoogolapple bingoogolapple@gmail.com
# ADD 往它肚子里放点文件(COPY 文件,会自动解压)
ADD pcre2-10.21.tar.gz /usr/local/src
ADD nginx-1.11.8.tar.gz /usr/local/src
# RUN 你想让它干啥(在命令前面加上 RUN)
RUN yum install -y wget gcc gcc-c++ make openssl-devel && yum clean all
RUN useradd -s /sbin/nologin -M www
# WORKDIR 我是 cd,今天刚化了妆(当前工作目录)
WORKDIR /usr/local/src/nginx-1.11.8
RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre2-10.21 && make && make install
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
# VOLUME 给我一个存放行李的地方(目录挂载)
# EXPOSE 我要打开的门是啥(端口)
EXPOSE 80
# ENV 设置环境变量,环境变量的后面一定要加上 :$PATH
ENV PATH /usr/local/nginx/sbin:$PATH
# RUN 奔跑吧,兄弟!(进程要一直运行下去)
CMD ["nginx"]

末尾的 . 是指定 Dockerfile 存放的目录,这里就是当前目录 docker build --tag bingoogolapple/test:v1 . docker build -t bingoogolapple/test:v1 .

bingoogolapple commented 6 years ago

容器和主机之间拷贝文件

image