基本格式:
docker commit 容器id\容器名 新的镜像名字:版本
一、手动制作镜像
1.启动一个容器
docker run -it -d -p 1022:22 centos:6.9
2.安装服务
登入容器
yum install httpd openssh-server nginx -y
vi /init.sh
#!/bin/bash
/etc/init.d/httpd start
/usr/sbin/sshd -D
3.将容器提交为镜像
docker commit 容器id\名字 新名字:版本
二、dockerfile自动构建镜像
dockerfile主要组成部分
FROM 这个镜像的妈妈是谁?(指定基础镜像)
MAINTAINER 告诉别人,谁负责养它?(指定维护者信息,可以没有)
LABLE 描述,标签
RUN 你想让它干啥(在命令前面加上RUN即可)
ADD 给它点创业资金(会自动解压tar) 制作docker基础的系统镜像
WORKDIR 我是cd,今天刚化了妆(设置当前工作目录)
VOLUME 给它一个存放行李的地方(设置卷,挂载主机目录)
EXPOSE 它要打开的门是啥(指定对外的端口)(-P 随机端口)
CMD 奔跑吧,兄弟!(指定容器启动后的要干的事情)(容易被替换)
dockerfile其他指令:
COPY 复制文件(不会解压)rootfs.tar.gz
ENV 环境变量
ENTRYPOINT 容器启动后执行的命令(无法被替换,启容器的时候指定的命令,会被当成参数)
自动构建可道云镜像
cat dockerfile
FROM centos:6.9
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
RUN curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
RUN yum install php-fpm php-mbstring php-gd nginx unzip -y
WORKDIR /opt/
RUN curl -o kodexplorer4.40.zip http://192.168.12.201/docker_image/kodexplorer4.40.zip
RUN unzip kodexplorer4.40.zip
RUN chown -R nginx.nginx .
ADD nginx.conf /etc/nginx/nginx.conf
ADD www.conf /etc/php-fpm.d/www.conf
ADD init.sh /init.sh
CMD ["/bin/bash","/init.sh"]
cat init.sh
#!/bin/bash
service php-fpm restart
nginx -g 'daemon off;'
cat nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
root /opt;
index index.php index.html index.htm;
location / {
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /opt$fastcgi_script_name;
include fastcgi_params;
}
}
}
php配置文件把属主属组更改为nginx
配置文件此处略(太长了)
5.生成
docker build -t 容器名:版本 .
网友评论