Docker自定义镜像操作
1、镜像与容器联系
(1) 镜像是什么 ?
简单说,Docker 镜像是一个不包含 Linux 内核而又精简的 Linux 操作系统。
(2) 镜像从哪来 ?
Docker Hub 是由 Docker 公司负责维护的公共注册中心,包含大量的容器镜像, Docker 工具默认从这个公共镜像库下载镜像。
https://hub.docker.com/explore
默认是国外的源,下载会慢,建议配置国内镜像仓库:https://blogs.starcto.com/mirror-speed/
(3) 镜像和容器联系 ?
【注】以上 容器和镜像的关系图中 ,镜像 是只读的 ,所有 操作都在容器中进行 , 被临时存在 在 docker 运行目录的 container 文件中,当容器被删除时 , 那么容器 所 写的东西 被全部删除。
[root@docker /]# docker history nginx #Docker的层级,每层都有大小
【注】 镜像 就是在容器上添加了一个读写层。
【注】overlay2 : 存储驱动目录 , 存放镜像数据 。CentOS7 默认
2、镜像导出save-离线
【注】场景:针对没有网络的主机或者从现网pull比较慢的情况下,可以本地打包已经存在的镜像进行共享。
[root@ansible ~]# docker save docker.io/debian:8.10 > /tmp/debian.tar
#删除现有镜像
[root@ansible ~]# docker images
[root@ansible ~]# docker container ps -a #查看所有容器列表
[root@ansible ~]# docker rm 6e72c6a6ee92 #删除debian容器
3、镜像导入load-离线
【注】导出用>,导入用<。
[root@ansible ~]# docker load < /tmp/debian.tar
Loaded image: docker.io/debian:8.10
4、Dockerfile构建镜像
[root@ansible ~]# mkdir /mnt/stargao/
[root@ansible ~]# touch /mnt/stargao/Dockerfile
[root@ansible ~]# vim /mnt/stargao/Dockerfile
FROM centos:6.9
MAINTAINER stargao "stargao@ucloud.com"
RUN /bin/echo 'root:redhat' |chpasswd
RUN useradd stargao
RUN /bin/echo 'stargao:stargao' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
#从本地开始构建镜像
[root@ansible ~]# docker build -t centos-stargao:v1 /mnt/stargao/
5、使用容器构建Docker镜像
【注】应用场景,部署一个容器,在容器中安装和部署业务所需的安装包和程序,部署完成,将容器打包成镜像,可以实现业务一键部署。
#创建容器,指定容器名为stargao_debian
[root@ansible ~]# docker run -it --name=stargao_debian docker.io/debian:8.10 bash
#打包容器,制作成镜像
[root@ansible ~]# docker commit -m "debian_stargao v1" -a=stargao stargao_debian localimage/debian_stargao:v1
【描述】-m镜像描述,-a镜像作者。红色部分是需要打包容器的名称;蓝色部分是打包后的镜像名称。
6、容器导入 import、导出export
#容器导出成文件
[root@ansible ~]# docker export -o /tmp/debian_stargao_v2.tar stargao_debian
#容器文件导入成镜像
[root@ansible ~]# docker import -m "stargao_debian_v3" /tmp/debian_stargao_v2.tar localimage/stargao_debian:v3
作者:UStarGao
链接:https://www.starcto.com/docker/86.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
UCloud云平台推荐
随便看看
- 2021-10-08Microsoft SQL Server安装部署教程
- 2021-08-09MongoDB副本集搭建教程
- 2021-05-09CURL方法测试网站响应速度
- 2023-05-07如何快速部署ChatGPT应用并绕开限制
- 2022-08-16MySQL utf8mb4字符集之表情包存储/生僻词存储