175. 手动制作docker镜像

手动将容器保存为镜像

1. 制作镜像思路:

1. 启动一个基础镜像
      docker run -it -p 80:80  centos:6.9
      
2. 进入容器安装服务
      docker exec -it 88711c979d1b /bin/bash
      
3. 安装完服务后,回到宿主机提交镜像
      docker commit 88711c979d1b yiliao:v2

4. 测试环境 
      
5. 导出镜像
      docker save yiliao:v2 -o docker_yiliao_v2.tar.gz

2. 基于c6手动制作httpd服务的镜像

1):基于容器制作镜像
docker run -it centos:6.9 
yum install httpd
yum install openssh-server
/etc/init.d/sshd start
vi /init.sh
#!/bin/bash
/etc/init.d/httpd start
/usr/sbin/sshd -D
chmod +x /init.sh

2)将容器提交为镜像 
docker commit 容器id或者容器的名字 新的镜像名字[:版本号可选]
docker commit oldboy centos6-ssh-httpd:v1

3)测试镜像功能是否可用
手动制作的镜像,传输时间长 镜像初始命令

3. 基于c6手动制作Nginx服务的镜像

1:启动一个基础容器,安装服务(部署项目)
docker run -it -p 80:80 centos:6.9

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum install nginx -y
yum install unzip -y
cd /usr/share/nginx/html/
rm -fr *
curl -o yiliao.zip http://192.168.37.200/191127/everyxiaoqiang-yiliao-master.zip
unzip yiliao.zip
mv yiliao/* .

2:把安装好服务的容器,提交成镜像
docker commit 9f366f3988cd yiliao:v1

3:测试,刚才提交的镜像
docker run -d -p 81:80 yiliao:v1 nginx -g 'daemon off;'

4. 基于alpine手动制作Nginx+PHP服务的镜像

1. 启动一个基础容器,安装服务(部署项目)
[root@docker01 ~]# docker run -it -p 80:80 alpine:latest

1.1 准备yum源
sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
apk update

1.2 安装软件包
apk add nginx php7-intl php7-openssl php7-pdo_mysql php7-common php7-fpm php7-mysqlnd 
php7-mbstring php7-opcache php7-session php7-gd php7-json php7 php7-iconv php7-curl php7-pecl-igbinary php7-pecl-memcached php7-pdo php7-mysqli

1.3 启动服务
/ # nginx 
/ # nginx: [emerg] open() "/run/nginx/nginx.pid" failed (2: No such file or directory)
^C
/ # mkdir /run/nginx
/ # nginx 
/ # php-fpm7 

1.4 测试服务是否正常
alpine它虽小,处处有坑,nginx默认直接返回404,需要手动修改默认配置文件,location匹配index.html

2. 把安装好服务的容器,提交成镜像
[root@docker01 ~]# docker commit dfe68e561586 alpine_lnp:v3.0

3.测试,刚才提交的镜像
docker run -d -p 80:80 alpine_lnp:v3.0 nginx -g 'daemon off;'

5. 基于c6制作kodexplorer网盘docker镜像。nginx + php-fpm(httpd + php)

1.启动一个基础容器,安装服务(部署项目)
[root@docker01 ~]# docker run -it -p 80:80 c6_nginx:v1 /bin/bash
准备yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
安装软件
[root@2115df25be1b /]# yum install nginx php-fpm php-gd php-mbstring unzip -y

配置nginx
[root@2115df25be1b ~]# cat /etc/nginx/conf.d/kdy.conf 
server {
	listen 80;
	server_name localhost;
	root /code;
	location / {
	index index.php index.html index.htm;
	}

	location ~\.php$ {
	fastcgi_pass 127.0.0.1:9000;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	include fastcgi_params;
	}
}

上传可道云代码文件并解压至code目录--->前边需要提前创建code目录---->修改权限为nginx
编写服务启动脚本:
[root@2115df25be1b ~]# cat /init.sh 
#!/usr/bin/bash
service php-fpm start
nginx -g 'daemon off;'

2. 把安装好服务的容器,提交成镜像
[root@docker01 ~]# docker commit 2115df25be1b kdy:1.0

3. 测试,刚才提交的镜像
方案一:
[root@docker01 ~]# docker run -d -p 81:80 kdy:1.0 /bin/bash /init.sh

方案二:
[root@docker01 ~]# docker run -d -p 82:80 kdy:1.0 su -s /bin/bash -c "service php-fpm start; nginx -g 'daemon off;'" root

在这里插入图片描述

发布了184 篇原创文章 · 获赞 72 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/chengyinwu/article/details/104076663