基于正在运行中的容器制作镜像

基于正在运行中的容器制作

docker commit --help
Usage:	docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
Create a new image from a container's changes
Options:
  -a, --author string    Author (e.g., "John Hannibal Smith <hannibal@a-team.com>")
  -c, --change list      Apply Dockerfile instruction to the created image
  #-c 可将Dockerfile指令应用于创建的映像
  -m, --message string   Commit message
  -p, --pause            Pause container during commit (default true)

docker yum部署nginx

#下载官方基础镜像
docker pull centos:7.7.1908
#创建并进入容器
docker run -it -p 80:80 centos:7.7.1908 bash


#更改yum源
wget -O /etc/yum.repo.d/CentOS-Base.repo http://mirroros.aliyun.com/repo/Centos-7.repo
yum install -y epel-release 
#安装常用工具
yum install -y net-tools vim wget pcre pcre-devel zlib zlib-devel openssl openssl-devel  iproute iotop
#安装nginx和常用工具
yum install -y nginx
#修改配置文件,改为前台运行;主配置段添加配置
daemon off;
#编写页面,无法保存;需要删除原链接文件
cd /usr/share/nginx/html
echo "<h1>hello docker</h1>" > index.html
#启动nginx
nginx -t
nginx
#测试访问
curl 192.168.121.81
<h1>hello docker</h1>



#在宿主机操作,注意不要关闭docker终端;
#提交为镜像
docker commit -a "gms 952726682@qq.com" -m "nginx 1.16.1" d47d3370e7b2 centos-nginx:v1.16.1
sha256:1053a863db3c7b5f655af22a3592cd35bf68efe64485deb280a976c449f4be95
#查看images
docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos-nginx        v1.16.1             1053a863db3c        11 seconds ago      429MB
#测试镜像
docker run -it -p 8880:80 centos-nginx:v1.16.1 nginx 
#测试镜像
curl 192.168.121.81:8880
<h1>hello docker</h1>



#修改配置文件,去除
daemon off;
#再次提交为镜像
docker commit -a "gms 952726682@qq.com" -m "nginx 1.16.1" [CONTAINER ID] centos-nginx-v2:v1.16.1
#如果未配置后台启动,也可进行命令传参数
docker run -it -p 8881:80 centos-nginx-v2:v1.16.1 nginx "-g daemon off"

docker 编译部署nginx

#下载官方基础镜像
docker pull centos:7.7.1908
#创建并进入容器
docker run -it -p 80:80 centos:7.7.1908 bash


#更改yum源
wget -O /etc/yum.repo.d/CentOS-Base.repo http://mirroros.aliyun.com/repo/Centos-7.repo
yum install -y epel-release 
#安装常用工具
yum install -y net-tools vim wget pcre pcre-devel zlib zlib-devel openssl openssl-devel  iproute iotop
#下载nginx
wget -O /usr/local/src http://nginx.org/download/nginx-1.16.1.tar.gz
#解压
tar xvf nginx-1.16.1.tar.gz && cd nginx-1.16.1
#安装
./configure --prefix=/usr/local/nginx
make && make install
#修改配置文件
vim /usr/local/nginx/nginx.config
#编写页面,无法保存;需要删除原链接文件
cd /usr/share/nginx/html
echo "<h1>hello docker make nginx</h1>" > index.html
#制作软连接
ln -sv /usr/local/nginx/sbin/nginx /usr/bin/
#提交为镜像
docker commit -a "gms 952726682@qq.com" -m "nginx-make 1.16.1" [CONTAINER ID] centos-nginx:v2
#制作软连接
docker run -it -p 8803:80 centos-nginx:v2 nginx "-g daemon off"


#skip制作软连接
#再次提交为镜像
docker commit -a "gms 952726682@qq.com" -m "nginx-make 1.16.1" [CONTAINER ID] centos-nginx:v1
#若未制作软连接,则在docker run是需要写绝对路径
docker run -it -p 8803:80 centos-nginx:v1 /usr/local/sbin/nginx "-g daemon off"

#注意名字重复时,容器则会被覆盖
posted @ 2020-07-01 20:33  Gmiao  阅读(388)  评论(0编辑  收藏  举报