1. 程式人生 > >Docker上定製CentOS7映象

Docker上定製CentOS7映象

前言:

正文:

第一步:下載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/ 看一下

Docker上定製CentOS7映象