Docker基礎入門實踐

原文地址php

基本概念

Docker三個基本概念

  • 鏡像(Image)
  • 容器(Container)
  • 倉庫(Repository)

鏡像

鏡像能夠理解爲只讀模板,如包含一個centos操做系統環境docker

容器

Docker利用容器來隔離和運行應用,容器是從鏡像建立的運行實例apache

注:鏡像是隻讀的,容器在啓動時建立一層可寫層作爲最上層centos

倉庫

集中存放鏡像文件的地方bash

Docker安裝

CentOS安裝Docker

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]

  • 註冊服務器:registry.aliyuncs.com
  • 倉庫:acs-sample/centos
  • 標記:lastest

查看鏡像

$ docker images

出現以下信息

REPOSITORY                                TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
registry.aliyuncs.com/acs-sample/centos   latest              bf8055dc372f        6 weeks ago         196.6 MB
  • 倉庫:來自哪一個倉庫
  • 標記:經過tag來區分版本,如centos六、centos7
  • 惟一ID
  • 建立時間
  • 大小

建立鏡像

能夠從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 exportdocker 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 pulldocker push命令來下載和推送鏡像,如

$ docker pull registry.aliyuncs.com/xqh/centos6-sshd
$ docker push registry.aliyuncs.com/xqh/centos6-sshd

私有倉庫

指用戶搭建一個本地倉庫供私人使用

相關文章
相關標籤/搜索