2 docker模板 鏡像 容器 倉庫管理

鏡像管理
搜索鏡像
# docker search centos
    [stars]:開發者的數量,應當選擇開發者較多的
下載鏡像
# docker pull centos
查看鏡像
# docker images
複製鏡像
# docker tag centos centos1[:tag]

啓動鏡像
docker run -t -i centos /bin/bash
-t分配爲終端
-i讓容器標準輸入打開
加上-d 即使exit退出爲終端,容器也在運行,容器裏的網站啊數據庫都不會停止

查看鏡像的運行情況
docker ps 查看正在運行的鏡像
docker ps -a 查看正在所有的鏡像

刪除鏡像
如果容器已經啓動,先要關閉容器
docker stop CONTAINER_ID

刪除鏡像
docker rmi centos[:tag] 刪除鏡像 
    tag用於精確定位
# docker rmi hiyang
Untagged: hiyang:latest
# docker rmi yang:latest
Untagged: yang:latest



Docker 基於已有鏡像的容器創建鏡像
官方提供centos鏡像,帶有yum。
安裝一些常用軟件
# yum install wget net-tools vim-enhanced

查看系統版本
# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core)

查看內核 和母機的內核版本相同
# uname -r
2.6.32-573.el6.x86_64

生成新的鏡像
# docker commit -m 'centos with net-tools and wget' -a 'hiyang' 8c13d4df2974 centos_with_net
-m 指定說明信息
-a 指定作者
CONTAINER ID 可以縮寫
最後是新鏡像的名稱


基於本地模板dao'ru創建鏡像
模板下載地址
openvz的模板可以使用在docker中

導入模板
# cat centos-6-x86-minimal.tar.gz | docker import - centos-6-x86-minimal
此處的名稱centos-6-x86-minimal可以自定義

導出鏡像
# docker save -o centos_with_net IMAGE_ID

導入鏡像
# docker load -i centos6 或者
# docker load < centos6

上推鏡像
# docker push image_name



容器管理
啓動容器時運行命令,bash -c可以省略可以省略
# docker run -d centos bash -c "while :; do echo "123";  sleep 5;done"
# docker exec -it centos bash -c "while :; do echo "123";  sleep 5;done"
查看命令運行情況
# docker logs

啓動exit後的容器
# docker start CONTAINER_ID 
    CONTAINER_ID可以簡寫

啓動容器時,使用--name指定名稱
# docker run --name hi -itd centos

關閉容器
# docker stop CONTAINER_ID 

進入啓動的容器
# docker exec -it CONTAINER_ID /bin/bash
# docker attach CONTAINER_ID 退出後即關閉系統

導出容器
# docker export cea > centos_export.tar

導入容器後是一個鏡像,需要重新生成容器
# cat centos_export.tar | docker --import - hiyang 


docker倉庫管理
下載registry鏡像,registry用來搭建本地的docker倉庫
# docker pull registry

從外邊無法訪問容器,因此需要映射
# docker run -d -p 5000:5000 registry

查看registry的運行和端口
# docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                    NAMES
c86eaf803b16        registry            "/entrypoint.sh /etc   3 minutes ago       Up 3 minutes        0.0.0.0:5000->5000/tcp   elegant_fermat      

測試網絡連通性
# telnet 127.0.0.1 5000 或者
# curl 127.0.0.1:5000

爲了測試,選擇較小的busybox
# docker pull busybox
添加tag,添加這個tag之後才能上傳到私有的倉庫中
# docker tag busybox 192.168.1.30:5000/busybox

上傳報錯
# docker push 192.168.1.30:5000/busybox

Error response from daemon: invalid registry endpoint https://192.168.1.30:5000/v0/: unable to ping registry endpoint https://192.168.1.30:5000/v0/

解決辦法,修改配置文件
# vim /etc/init.d/docker
$exec -d --insecure-registry 192.168.1.30:5000 $other_args &>> $logfile &

重啓docker
# /etc/init.d/docker restart
啓動registry
# docker start c86eaf803b16

上傳成功
# docker push 192.168.1.30:5000/busybox
The push refers to a repository [192.168.1.30:5000/busybox] (len: 1)
b05baf071fd5: Image already exists 
4185ddbe03f8: Image successfully pushed 
Digest: sha256:30914a5bc1a94367f542a624e0ae1c7cc544bb97cef5e5b4e3bbf9eafdf6273d





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章