docker手动制作容器镜像
1.启动容器
docker run --name base -d centos:7 tail -f /etc/hosts
2.安装服务
进入容器
docker exec -it base bash
进入容器后 安装 Yum 源
先确定是否可以联网,(我这边刚开始不能上网, 重启linux 就可以了,好奇怪)
然后:
curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum -y install nginx
rm -rf /usr/share/nginx/html/*
echo www.baimei.com > /usr/share/nginx/html/index.html
nginx -g 'daemon off;' # 在前台启动nginx服务
我们在 另一个终端 评一下
然后 退出
exit
这个时候上不去网了
3.将容器提交为镜像
docker container commit -a baimeidashu.com -m 'shoudong v0.1' base baimei-centos-nginx:v0.1
# -a表示声明作者信息,-m表示声明注释信息。
4.查看镜像的详细信息
docker inspect baimei-centos-nginx:v0.1
docker images
5.手动再次提交测试
docker run -d --name web2 baimei-centos-nginx:v0.1
这种方式,我们是访问不到服务的,因为 我们制作的镜像, nginx 没有启动
要想启动需要给它 传递参数:
docker run -d --name web3 baimei-centos-nginx:v0.1 nginx -g 'daemon off;'
再次 提交一个带 命令参数的 制作一个镜像
docker container commit web6 baimei-centos-nginx:v0.2
这次我们根据 带 参数nginx -g 'daemon off 的镜像,来启动一个容器。
看看能否正常 访问:
docker run -d --name web7 baimei-centos-nginx:v0.2
我们做一下 端口映射来启动
docker run -d -p 80:80 --name web8 baimei-centos-nginx:v0.2
到此为止,我们制作了自己的镜像文件了。
拓展,
如何 做多个 服务呢?
启动一个脚本就可以:
docker run -d --name start1 baimei-centos-nginx:v0.11 sh /start.sh