一、自定義鏡像
1,案例1
要求:請自定義一個 docker 鏡像,基於 hub.c.163.com/library/centos,要求創建出來的鏡像在生成容器的時候,可以直接使用 ifconfig 命令
自定義鏡像,輸入 vim Dockerfile:
RUN rpm --import
FROM hub.c.163.com/library/centos
MAINTAINER suyunanyan
RUN rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-*
RUN yum install net-tools -y
CMD ["/bin/bash"]

運行:-t 后面是自定義鏡像的名稱 .表示當前目錄 Dockerfile
docker build -t centos .
![]()
docker查看images:

測試這個鏡像:
--rm 表示退出后自動刪除

退出后,docker ps -a | grep centos ,沒有之前的centos了:

2,案例2
要求:通過自定義安裝nginx,是的本地的index.html作為Nginx默認訪問頁面
安裝 epel.repo:
yum install *epel* -y
查看
ls /etc/yum.repos.d/

拷貝 epel.repo 到當前目錄
cp /etc/yum.repos.d/epel.repo epel.repo
新建 index.html
echo 'hello docker!!!' > index.html
vim Dockerfile
輸入:
RUN rpm --import
FROM hub.c.163.com/library/centos
MAINTAINER suyunnanyan
RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-*
ADD epel.repo /etc/yum.repos.d/
RUN yum install net-tools nginx -y
RUN rm -rf /usr/share/nginx/html/
ADD index.html /usr/share/nginx/html/
CMD ["nginx", "-g","daemon off;"]

創建鏡像:
docker build -t nginx .
運行鏡像:
docker run -dit --rm -p 80:80 nginx

訪問該服務:

二、創建私有倉庫
docker pull hub.c.163.com/library/registry:latest
運行registry鏡像:
docker run -dit --name=r_hub -p 5000:5000 -v /home/docker/registry:/var/lib/registry hub.c.163.com/library/registry
docker ps | grep regi

在 192.168.222.151 虛擬機上運行命令
docker pull redis
docker tag docker.io/redis 192.168.222.151:5000/gzuni/redis
推送
docker push 192.168.222.151:5000/gzuni/redis

為什么會推送失敗?因為推送用的是https,修改設置:
vim /etc/docker/daemon.json

重啟docker:
systemctl restart docker
再次推送:
docker push 192.168.222.151:5000/gzuni/redis

查看本地倉庫:
curl -XGET http://192.168.222.151:5000/v2/_catalog

查看tags:
curl -XGET http://192.168.222.151:5000/v2/gzuni/redis/tags/list

刪除本地鏡像:
docker rmi -f docker.io/redis

從本地倉庫下載
docker pull 192.168.222.151:5000/gzuni/redis:latest


倉庫中刪除鏡像
curl https://raw.githubusercontent.com/burnettk/delete-docker-registry-image/master/delete_docker_registry_image.py | sudo tee /usr/local/bin/delete_docker_registry_image >/dev/null chmod a+x /usr/local/bin/delete_docker_registry_image
設置倉庫目錄:
export REGISTRY_DATA_DIR=/home/docker/registry/docker/registry/v2
輸入刪除命令:
/usr/local/bin/delete_docker_registry_image gzuni/redis:latest
三、查看 docker 運行狀態
docker stats

查看操作系統
free -m

限制內存運行
docker run -it --rm -m 200M centos
設置 cpu 親和性
docker run -it --rm --name=c1 --cpuset-cpus=1 centos
docker 監控
docker pull hub.c.163.com/xbingo/cadvisor:latest
docker run -v /var/run:/var/run -v /sys:/sys:ro -v /var/lib/docker:/var/lib/docker:ro -d -p 8080:8080 --name=mon hub.c.163.com/xbingo/cadvisor:latest
瀏覽器輸入http://192.168.222.151:8080/containers/ :


