基于官方制作的centos镜像,制作一个自己的docker镜像,镜像里面可以包含文件、压缩包、内置gcc、vim等命令,镜像还可以支持导出导入,可以在linux、mac、window之间流转使用。
1.安装docker desktop
https://www.docker.com/products/docker-desktop/
2.设置docker国内镜像源
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"registry-mirrors": [
"https://tkcnyb3h.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://ccr.ccs.tencentyun.com",
"https://docker.m.daocloud.io",
"https://docker.udayun.com",
"https://noohub.ru",
"https://huecker.io",
"https://dockerhub.timeweb.cloud"
]
}
3.配置Dockerfile文件, 这个文件里面还可以配置把jdk.zip等文件打包到镜像里面
FROM centos:7
MAINTAINER yzyspy@163.com> #创建者的信息
ENV MYPATH /usr/local
WORKDIR $MYPATH
#RUN yum -y install vim
#RUN yum -y install net-tools
CMD echo $MYPATH
CMD echo "--------end-------"
CMD /bin/bash
4.创建镜像
docker build -t 自定义镜像名称:版本号
docker build -t mycentos:1.0 .
执行成功以后 docker images 查看
5. 启动容器
docker run -dit --name 自定义的容器名称 --privileged=true mycentos:1.0 /usr/sbin/init
1、其中–name指定容器名称
2、–privileged=true 给容器访问Linux内核特权,后面要使用systemctl,不加–privileged=true后面将无法执行systemctl命令。
docker run -dit -p 3333:22 --name centos_pod_5.5 -v /tmp/:/tmp --privileged=true mycentos:5.0 /usr/sbin/init
docker ps -a 查看容器状态
6.进入容器
docker exec -it 容器名称 bash
7.配置国内yum源
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.bak #备份旧文件
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
如果没有wget命令可以通过curl -O 获取文件内容,vi手动编辑写入 CentOS-Base.repo
yum clean all
yum makecache
试试 yum -y install vim 是不是可以正常使用了。
我们在这个容器里面可以安装各种软件了,比如gcc、g++,也可以下载一些so或者源代码,然后可以把这个容器重新打包为一个image镜像,发送给别人使用。
https://www.dtstack.com/bbs/article/7650
两种方法都可以,docker export 是把容器导出为镜像tar,当时也可以通过commit把容器打包为镜像,然后通过docker save 导出镜像
如果只是自己本机使用,不需要分发的给别人的话,可以通过 docker commit更新本地镜像,下次启动的时候直接使用新版本的镜像启动容器。
docker commit centos_7_pod mycentos:4.0