文章目录

    • 1. 手动制作docker镜像
    • 2. 自动制作docker镜像
    • 3. docker镜像的分层
    • 4. dockerfile的优化
    • 5. 容器间的互联
    • 6. 单机版的容器编排

1. 手动制作docker镜像

制作一个基于centos6系统的nginx镜像(单服务)

1 :启动一个纯净的centos:6.9容器,安装nginxecho '192.168.12.201 mirrors.aliyun.com'>>/etc/hostscurl -o /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-6.repocurl -o /etc/yum.repos.d/epel.repohttp://mirrors.aliyun.com/repo/epel-6.repoyum install nginx -y2 :把安装好服务的容器,提交为镜像docker container commit eb109fcentos6.9_nginx:v3 :测试镜像的功能docker run -d -p 82 :80 centos6.9_nginx:vnginx -g 'daemon off;'
1. 启动一个基础容器# 默认初始命令是/bin/bash,只要一退出容器,容器就会死docker run -it -p 80:80 centos:72. 安装服务# 安装yum源和epel源# yum -y install nginx systemctl start nginx # 因为容器里面没有D-Bus,所以使用不了systemctlnginx 直接启动/var/log/nginx/error.logrm -rf/usr/share/nginx/html/index.htmlecho 'web01' >/usr/share/nginx/html/index.htmlctrl+d 退出容器3. 将安装好服务的容器提交为镜像docker container commit 容器idcentos7_nginx:v1# 基于镜像,起容器docker run -d centos7_nginx:v1#因为初始命令为/bin/bash,所以放后台会直接死docker run -d -p 80:80 centos7_nginx:v1 nginx -g 'daemon off;'

制作一个基于centos6系统的kod网盘的镜像(多服务)

1 :启动一个centos6.9_nginx:v1,再安装phpecho '192.168.12.201 mirrors.aliyun.com'>>/etc/hostsyum install php-fpm php-gd php-mbstring -yvi /etc/php-fpm.d/www.confservice php-fpm startcd /etc/nginx/conf.d/vi default.confmkdir /htmlcd /htmlwget http://192.168.19.200/191127/kodexplorer4.40.zip curl -o kodexplorer4.40.zip http://192.168.19.200/191127/kodexplorer4.40.zipyum install unzip -yunzip kodexplorer4.40.zipchown -R nginx:nginx.vi /init.sh#!/bin/bashservice php-fpm startnginx -g 'daemon off;'2 :把安装好服务的容器,提交为镜像docker commit 47208e3e3796 kod:v3 :测试镜像的功能docker run -d -p 83 :80 kod:v2 /bin/bash/init.sh

制作一个基于centos7系统的nginx+sshd双服务镜像

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repocurl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repoyum install nginx -yyum install openssh-server -yyum install initscripts -y/usr/sbin/sshd-keygenecho '123456'|passwd --stdin root/usr/sbin/sshd -Dvi /init.sh

2. 自动制作docker镜像

镜像: 中药
dockerfile: 配方
dockerfile常用指令

FROM 基础镜像RUN 制作镜像过程中需要的执行命令CMD 容器启动的时候执行的初始命令,容易被替换ENTRYPOINT 容器启动的时候执行的初始命令,不能被替换,如果同时使用CMD和ENTRYPOINT,cmd命令将作为ENTRYPOINT命令的参数ADD 把dockerfile当前目录下的文件拷贝到容器中(自动解压tar包)COPY 把dockerfile当前目录下的文件拷贝到容器中(不解压tar包)WORKDIR 指定容器的默认工作目录EXPOSE 镜像要暴露的端口VOLUME持久化卷ENV环境变量(ssh的密码,数据库的密码)LABEL镜像的属性标签MAINTAINER管理者标识

根据dockerfile自动构建镜像的思路

a:手动制作docker镜像,记录历史命令b:根据历史命令编写dockerfile文件c:docker build构建docker镜像d:测试镜像的功能

3. docker镜像的分层

4. dockerfile的优化

5. 容器间的互联

6. 单机版的容器编排