环境:CentOS 7.5 64 位
正文:
第一步:下载CentOS 7镜像
docker pull centos
第二步:建立CentOS 7的容器
sudo docker run --privileged --cap-add SYS_ADMIN -e container=docker -it --name my_centos -p 80:80 -d --restart=always centos /usr/sbin/init
- –privileged 指定容器是否是特权容器。这里开启特权模式。
- –cap-add SYS_ADMIN 添加系统的权限。否则系统很多功能都用不了的。
- -e container=docker 设置容器的类型。
- -it 启动互动模式。
- –name 取别名 my_centos
- -p 端口映射,把80端口映射到容器的80端口。
- -d 放入后台
- –restart=always 在启动时指定自动重启
- /usr/sbin/init 初始容器里的centos。
- 以上的参数是必需的。否则建立的centos容器不能正常使用和互动
- 如果没有-it参数,容器会不停启动。
- 如果没有初始化和特权等等的开关,就不能使用systemctl。所以,以上的开关和设置是一样不能少的。
进入容器
docker exec -it my_centos /bin/bash
容器的用户是root,如果要修改密码,要安装一些被精简掉的程序。如passwd,sudo等命令。
第三步:commit制作镜像
启动一个容器,对容器修改操作,会保存到容器的存储层,当容器销毁存储层也销毁。
1.修改了容器的文件,即修改了容器的存储层,查看具体改动
我们可以看到具体改动 docker diff my_centos
2.commit保存修改成为镜像,镜像名字为my_centos:v2
代码语言:javascript复制docker commit --author "hanfan" --message "创建了镜像" my_centos my_centos:v2
3.查看my_centos:v2镜像修改历史 docker history my_centos:v2
第四步:推送到hub上
1.登录hub
docker login
输入账号密码,登录成功。
2.推送
docker push my_centos:v2
报错
代码语言:javascript复制Error response from daemon: You cannot push a "root" repository. Please rename your
repository to docker.io// (ex: docker.io/hanfan/my_centos)
行吧,那就重新做一个镜像
代码语言:javascript复制docker commit --author "hanfan" --message "创建了镜像" my_centos docker.io/hanfan/my_centos
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:zbxhhzj@qq.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。 转载本站文章请保留原文链接,如文章内说明不允许转载该文章,请不要转载该文章,谢谢合作。