Docker上定製CentOS7映象
阿新 • • 發佈:2018-12-28
前言:
正文:
第一步:下載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
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
報錯
Error response from daemon: You cannot push a "root" repository. Please rename your repository to docker.io/<user>/<repo> (ex: docker.io/hanfan/my_centos)
行吧,那就重新做一個映象
docker commit --author "hanfan" --message "建立了映象" my_centos docker.io/hanfan/my_centos
再次推送
上 https://hub.docker.com/ 看一下