前言: 環境:centos7.5 64 位 正文: 第一步:下載centos7鏡像 第二步:建立centos7的容器 privileged 指定容器是否是特權容器。這裡開啟特權模式。 cap add SYS_ADMIN 添加系統的許可權。否則系統很多功能都用不了的。 e container=docke ...
前言:
環境:centos7.5 64 位
正文:
第一步:下載centos7鏡像
docker pull centos
第二步:建立centos7的容器
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/ 看一下
搞定