原文地址php
鏡像能夠理解爲只讀模板,如包含一個centos操做系統環境docker
Docker利用容器來隔離和運行應用,容器是從鏡像建立的運行實例apache
注:鏡像是隻讀的,容器在啓動時建立一層可寫層作爲最上層centos
集中存放鏡像文件的地方bash
CentOS6服務器
$ yum install epel-release $ yum -y remove docker $ yum install docker-io
CentOS7ssh
$ yum install docker
啓動ui
$ service docker start
隨系統自啓動centos7
$ chkconfig docker on
幫助操作系統
輸入$ docker
會列表相關命令和介紹如何查看幫助
獲取鏡像
$ docker pull registry.aliyuncs.com/acs-sample/centos
鏡像地址格式爲[REGISTRYHOST/][USERNAME/]NAME[:TAG]
查看鏡像
$ docker images
出現以下信息
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE registry.aliyuncs.com/acs-sample/centos latest bf8055dc372f 6 weeks ago 196.6 MB
建立鏡像
能夠從DockHub獲取已有鏡像或經過dockerfile來建立
修改鏡像
經過docker commit
來實現
步驟:
1.啓動容器
$ docker run -it --name test registry.aliyuncs.com/xqh/centos6 /bin/bash [root@1ca39db81ee1 /]#
2.安裝wget,成功exit退出
$ yum install wget
3.提交更改,若是不指定tag會覆蓋原有鏡像
$ docker commit -m 'add wget' -a 'by xqh' 1ca39db81ee1 registry.aliyuncs.com/acs-sample/centos:2``` 4.查看鏡像,tag=2的包含wget的鏡像已經生成 REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE registry.aliyuncs.com/acs-sample/centos 2 1ca39db81ee1 57 seconds ago 255.7 MB **修改Tag**
$ docker tag registry.aliyuncs.com/acs-sample/centos:2 test```
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE registry.aliyuncs.com/acs-sample/centos 2 1ca39db81ee1 16 minutes ago 255.7 MB test latest 1ca39db81ee1 16 minutes ago 255.7 MB
上傳鏡像
把本身的鏡像經過docker push
上傳到倉庫
導出和導入
$ docker save -o centos-test.tar registry.aliyuncs.com/acs-sample/centos:2 $ docker load -i centos-test.tar
刪除鏡像
用docker rm
來移除本地鏡像,移除鏡像前要先移除依賴這個鏡像的容器
新建並啓動
新建並啓動docker run
,如
$ docker run -it --name test registry.aliyuncs.com/xqh/centos6 /bin/bash
其中-t
選項讓docker分配一個僞終端,-i
讓容器的標準輸入保持打開
啓動已終止容器
用docker start
來啓動一個已經中止的容器
後臺運行容器
用docker run -d
來實現,如
$ docker run -d --name test registry.aliyuncs.com/acs-sample/centos /bin/sh -c "while true; do echo hello world; sleep 1; done"
用docker ps
來查看啓動容器信息
[root@iZ23g3sxtunZ ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f23f49f7269c registry.aliyuncs.com/acs-sample/centos "/bin/sh -c 'while t 3 seconds ago Up 2 seconds test
用docker logs
來查看容器輸出信息
[root@iZ23g3sxtunZ ~]# docker logs test hello world hello world hello world
終止容器
經過docker stop
來終止容器,如
$ docker stop test
用docker ps -a
能夠查看終止狀態的容器
[root@iZ23g3sxtunZ ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f23f49f7269c registry.aliyuncs.com/acs-sample/centos "/bin/sh -c 'while t 4 minutes ago Exited (137) 4 seconds ago test
進入容器
用docker attach
進入容器當中
導入和導出
用docker export
和docker import
導出和導入容器
刪除容器
用docker rm
來刪除一個終止狀態的容器
登陸
登陸官方倉庫不須要指定地址
$ docker login $ docker login --username=xxx@aliyun.com registry.aliyuncs.com
搜索鏡像
用docker search
命令查看倉庫中的鏡像,如查詢被收藏10次以上的centos鏡像
[root@iZ23g3sxtunZ ~]# docker search -s 10 centos NAME DESCRIPTION STARS OFFICIAL AUTOMATED centos The official build of CentOS. 1947 [OK] jdeathe/centos-ssh CentOS-6 6.7 x86_64 / SCL/EPEL/IUS Repos /... 15 [OK] jdeathe/centos-ssh-apache-php CentOS-6 6.7 x86_64 / Apache / PHP / PHP M... 13 [OK]
下載和上傳鏡像
用docker pull
和docker push
命令來下載和推送鏡像,如
$ docker pull registry.aliyuncs.com/xqh/centos6-sshd $ docker push registry.aliyuncs.com/xqh/centos6-sshd
私有倉庫
指用戶搭建一個本地倉庫供私人使用