docker 入門操作與本地廠庫

    docker 自誕生以來就是業內討論得很火的一個話題,討論程度僅此於openstack,後期應該會持續更新一些關於docker的內容:

    docker是什麼:簡單來說docker 是軟件工業的集裝箱技術,可以實現相互隔離快速打包部署功能。

   

docker的安裝和基本命令:

環境:

centos 7


docker安裝:

[root@xiaoluo src]# yum install docker-io -y


##docker三個基本概念我之見:

1、鏡像:可以理解成一個簡單的系統,在上面可以部署和運行東西,用鏡像可以啓動一個容器。

2、容器:一個容器代表一個獨立的任務,各容器之前相互隔離運行。

3、廠庫:存放鏡像的地方。


查看鏡像:

[root@xiaoluo src]# docker p_w_picpaths
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos              latest              60e65a8e4030        8 weeks ago         196.6 MB
ubuntu              14.04               d55e68e6cc9c        11 weeks ago        187.9 MB


*TAG:鏡像的標識,當使用push不加別的版本,默認使用的是latest.

IMAGE ID:鏡像的唯一標識


查看可以下載鏡像:

[root@xiaoluo src]# docker search centos

下載鏡像可以docker pull xxx 從庫裏下載:


交互模式下啓動docker:

[root@xiaoluo src]# docker exec -it centos /bin/bash
[root@73aaba6e0cd1 /]#

啓動docker:

[root@localhost ~]# docker run -d -p 2222:22 --name base csphere/centos:7.193e712c9d91467c0748961685e5453a7cd50898212191a762a36c6e933dbd539
*-d 後臺啓動
-p 本機端口2222映射到docker內部的22口(當然前提鏡像是提前構建好,後期會講到)
--name 給容器起一個別名 base
 鏡像名稱csphere/centos:7.1


查看正在啓動的容器:

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED              STATUS              PORTS                  NAMES
93e712c9d914        csphere/centos:7.1   "/usr/bin/supervisord"   About a minute ago   Up About a minute   0.0.0.0:2222->22/tcp   base

*查看所有的容器使用docker ps -a

刪除容器:docker rm 93e712c9d914  (刪除正在運行的容器docker rm f)


docker私有廠庫:

當我們使用docker pull的時候默認是從官方的鏡像去下載的,在我們環境中要是搭建一個本地的廠庫存放我們的鏡像就在合適不過了:


步驟:

1、下載一個registry容器,官方的p_w_picpaths有時候被牆,我這裏用的是靈雀雲的鏡像:

[root@localhost ~]# docker pull index.alauda.cn/library/registry

2、重命名一個鏡像:測試用

[root@localhost ~]# docker tag 7e4f044162b7 192.168.63.198:5000/test

*把鏡像ID爲7e4f044162b7定義別名192.168.63.198:5000/test

[root@localhost native]# docker p_w_picpaths
REPOSITORY                         TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
192.168.63.198:5000/test           latest              7e4f044162b7        8 days ago          724.9 MB
csphere/mysql                      5.5                 7e4f044162b7        8 days ago          724.9 MB
csphere/php-fpm                    5.4                 f149fdc3bb11        8 days ago          684.8 MB
csphere/centos                     7.1                 e3570ed66dc9        8 days ago          591.3 MB
index.alauda.cn/library/registry   latest              07d93e41c370        4 weeks ago         422.8 MB
docker.io/centos                   centos7.1.1503      fab4b1df8eb1        4 months ago        212.1 MB

3、本地啓動本地鏡像廠庫:

[root@localhost ~]#docker run -d -p 5000:5000 -v /opt/data/registry/:/tmp/registry-dev 07d93e41c370

4、修改配置文件/etc/sysconf/docker:

打開/etc/sysconfig/docker,找到OPTIONS這一行,取消註釋並修改如下:
OPTIONS='--selinux-enabled --insecure-registry=yourip:5000'

**不然會報如下類似錯:

unable to ping registry endpoint 
https://yourip:5000/v0/
v2 ping attempt failed with error: Get https://yourip:5000/v2/:EOF
v1 ping attempt failed with error: Get https://yourop:5000/v1/_ping:EOF

5、提交鏡像到本地庫:

[root@localhost native]# docker push 192.168.63.198:5000/test
The push refers to a repository [192.168.63.198:5000/test] (len: 1)
Sending p_w_picpath list
Pushing repository 192.168.63.198:5000/test (1 tags)
f1b10cd84249: Image successfully pushed 
172633e38420: Image successfully pushed 
fab4b1df8eb1: Image successfully pushed 
7911a8421c83: Image successfully pushed 
af42609f6313: Image successfully pushed 
fa48118fc839: Image successfully pushed 
b7ca1c16fd68: Image successfully pushed 
fca316033a3c: Image successfully pushed 
09f10030ab42: Image successfully pushed 
dc888ecebd54: Image successfully pushed 
519dde82a4cc: Image successfully pushed 
832a31216b14: Image successfully pushed 
e3570ed66dc9: Image successfully pushed 
e65974137a30: Image successfully pushed 
2752603711a9: Image successfully pushed 
f027aaa7d0db: Image successfully pushed 
6b59cfa21ac8: Image successfully pushed 
94d6cbee9151: Image successfully pushed 
5caacec189e1: Image successfully pushed 
255629e3621b: Image successfully pushed 
3ba1834f6adf: Image successfully pushed 
7e4f044162b7: Image successfully pushed 
Pushing tag for rev [7e4f044162b7] on {
http://192.168.63.198:5000/v1/repositories/test/tags/latest}

6、上傳成功檢查:

[root@localhost registry]# curl -X GET http://192.168.63.198:5000/v1/search
{"num_results": 1, "query": "", "results": [{"description": "", "name": "library/test"}]}

到此本地廠庫創建完成。


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