Docker镜像

自定义镜像

1.使用docker run启动一个容器,对容器进行配置,然后使用docker commit保存为新镜像

docker run -it docker.io/centos:latest 
docker commit 容器ID 镜像名:标签 #保存容器为新镜像

2.使用Dockerfile制作新镜像

Dockerfile语法格式

  • FROM:指定基础镜像
  • MAINTAINER:镜像创建者信息
  • EXPOSE:开放的端口
  • ENV:设置变量
  • ADD:复制文件到镜像
  • RUN:制作镜像时执行的命令,可以有多个
  • WORKDIR:定义容器默认工作目录,相当于cd到目录下
  • CMD:容器启动时执行的命令,仅可以有一条CMD
] mkdir docker_build
] cd docker_build
] vim Dockerfile    #文件名不可自定义
FROM docker.io/centos:latest
RUN cp -a /etc/yum.repos.d/* /root
ADD local.repo /root/l.repo
RUN yum -y install httpd
] docker build -t 镜像名:标签 Dockerfile所在目录
] docker build -t myos:test .

3.制作httpd服务容器

  • 编写Dockerfile文件所需命令可以先开启一个容器手动执行一遍后history查看
] docker run -it docker.io/centos:latest
 yum -y install httpd
 rpm -ql httpd | grep system
 vim /usr/lib/systemd/system/httpd.service   #查看服务启动的命令和需要设置的变量
 LANG=C   #手动设置变量
 sed -i 98s/\#// /etc/httpd/conf/httpd.conf
 echo "Hello World" > /var/www/html/index.html
 /usr/sbin/httpd -DFOREGROUND
 ss -lntup
  • 编写Dockerfile文件
] vim Dockerfile
FROM docker.io/centos:latest
RUN  yum -y install httpd
RUN  sed -i 98s/\#// /etc/httpd/conf/httpd.conf
WORKDIR /var/www/html
ADD index.html index.html
ENV  LANG=C
EXPOSE 80
CMD  ["/usr/sbin/httpd", "-DFOREGROUND"]
] docker build -t myos:httpd . 

自定义镜像仓库registry

  • 共享镜像的一台服务器(192.168.1.30)
    在这里插入图片描述
yum -y install docker-distribution
systemctl start docker-distribution
systemctl enable docker-distribution
查看仓库镜像名称
curl http://192.168.1.30:5000/v2/_catalog
查看仓库镜像标签
curl http://192.168.1.30:5000/v2/镜像名称/tags/list
文件说明
/etc/docker-distribution/registry/config.yml配置文件
/var/lib/registry/数据存储路径
  • 客户端配置
docker1.12版本
] vim /etc/sysconfig/docker
INSECURE_REGISTRY='--insecure-registry 192.168.1.30:5000'   #指定仓库ip和端口
ADD_REGISTRY='--add-registry 192.168.1.30:5000'
] systemctl restart docker

docker1.13版本可以使用上面的方法,也可以:
] vim /etc/docker/daemon.json
{ "insecure-registries":["192.168.1.30:5000"] }
] systemctl restart docker
  • 私有仓库镜像push|pull
[root@docker1 ~] docker tag docker.io/busybox:latest 192.168.1.30:5000/busybox:latest  #打标签
[root@docker1 ~] docker push 192.168.1.30:5000/busybox:latest  #上传
[root@docker1 ~] docker tag docker.io/myos:httpd 192.168.1.30:5000/myos:httpd
[root@docker1 ~] docker push 192.168.1.30:5000/myos:httpd

[root@docker2 ~] docker run -itd 192.168.1.30:5000/myos:httpd  #可以直接运行容器,也可以docker pull拉取镜像
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值