官方提供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建立鏡像
# 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