docker學習一

1. docker安裝

  • 安裝環境linux

    centos7.4docker

  • 開始安裝json

    下載docker官方yum源centos

    curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repobash

    開始安裝:yum install -y docker-ce服務器

2.docker鏡像管理

  • docker鏡像下載curl

    下載命令svn

    docker pull xxx xxx表示鏡像名稱,以下載centos鏡像就是ocker pull centosurl

    若是下載速度很慢能夠配置docker下載加速器centos7

    vi /etc/docker/daemon.json 加入如下內容:

    {
    "registry-mirrors": ["https://dhq9bx4f.mirror.aliyuncs.com"]

    }

  • docker經常使用命令

    1.查看本地的鏡像:docker images

    2.搜索鏡像,其中xxx是關鍵詞:docker search xxx

    3.給鏡像打標籤:docker tag centos test123:222333

    4.鏡像啓動爲容器,-i表示讓容器的標準輸入打開,-t表示分配一個僞終端,-d表示後臺啓動,要把-i -t -d 放到鏡像名字前面:docker run -itd centos

    5.查看docker啓動中的容器,加上-a選項後能夠查看全部容器,包括未運行的:docker ps

    6.用來刪除指定鏡像,其中後面的參數能夠是tag,若是是tag時,其實是刪除該tag。當後面的參數爲鏡像ID時,則會完全刪除整個鏡像,全部標籤也會一同刪除:docker rmi xxx

3.Docker經過容器建立鏡像

  1. 進入容器

    docker exec -it xxxxx bash 是進入容器的命令,其中xxxxx爲容器id,這個id能夠用docker ps查看,最後面的bash爲進入容器後咱們要執行的命令

  2. 在容器內安裝net-tools

    在容器內執行:yum install -y net-tools

  3. 提交新鏡像

    docker commit -m "change somth" -a "somebody info" container_id new_image_name 參數說明:container_id經過docker ps -a獲取,後面的new_image_name爲新鏡像名字

    示例:

    docker commit -m "install net-tools" -a "wxy" 82d0ec485063 centos_net-tolls

    這個命令有點像svn的提交,-m 加一些改動信息,-a 指定做者相關信息,82d0ec這一串爲容器id,再後面爲新鏡像的名字

    提交完成後,使用docker image查看:

4.Docker使用模板建立鏡像

  1. 下載一個模板

    wget http://download.openvz.org/template/precreated/centos-6-x86-minimal.tar.gz

  2. 導入該鏡像

    cat centos-6-x86-minimal.tar.gz |docker import - centos6

  3. 以現有的鏡像導出一個文件

    docker save -o centos_net-tolls.tar centos_net-tolls

  4. 把原有的進行刪除,把導出的鏡像導入進去

    docker images 獲取鏡像id

    docker rmi acaf23cc3076

    重啓導入鏡像

    docker load --input centos_net-tolls.tar 或者docker load < centos_net-tolls.tar也能夠

5.docker鏡像管理

  1. 啓動容器

    建立一個容器,可是不啓動: docker create -it centos6 /bin/bash

    啓動容器:docker start 30034995f99a

    啓動完成後能夠docker ps查看

    可使用docker run來進行啓動,它至關於先create後再start容器

    docker run -it centos6 /bin/bash

    docker -d可讓容器在後臺運行,如:

    docker run -itd centos6 /bin/bash

  2. 啓動容器時給容器自定義名稱

    docker run -itd --name "centos_1" centos6 /bin/bash

  3. 容器退出後直接刪除

    可讓docker容器運行一個命令後退出並刪除容器,如讓一個容器運行sleep 30,等待30秒後容器會中止並刪除。

    docker run --rm -itd centos /bin/bash -c "sleep 30"

  4. docker容器log查看

    啓動容器,並運行一個命令

    docker run -itd 80d356edba18 bash -c "echo 123"

    使用docker logs查看

    docker logs 3d995b4d

  5. 臨時docker打開虛擬終端

    使用docker exec 能夠打開容器的臨時終端,exit後容器仍是正常運行

    docker exec -it f3381b9c3b2e /bin/bash

    docker attach  container_id 這種方式也可打開終端,可是exit後容器就中斷了,因此這種方式通常不用

  6. 刪除容器

    docker rm  container_id 能夠刪除容器,container_id是ps的時候查看到的,這樣就能夠把container刪除,若是是運行的容器,能夠加-f

    docker rm -f f3381b9c3b2e

  7. 導出容器

    docker  export  container_id  > file.tar 這樣能夠導入容器,生成一個文件。能夠遷移到別的機器進行導入

    docker export 831cf59980c4 > wxy_test.tar

  8. 導入容器

    cat file.tar |docker import - wxy_test 這樣會生成新的鏡像

    cat centos-6-x86-minimal.tar.gz |docker import - wxy_test

6.docker倉庫管理

  1. 下載registry鏡像

    registy爲docker官方提供的一個鏡像,咱們能夠用它來建立本地的docker私有倉庫。

    docker pull registry

  2. 啓動registry鏡像

    docker run -d -p 5000:5000 registry

    啓動registry鏡像,-p的意思是把容器端口映射到宿主機上,左邊爲宿主機端口,右邊爲容器監聽端口

    訪問registry

    curl 127.0.0.1:5000/v2/_catalog

  3. 把鏡像上傳到私有倉庫

    首先給私有倉庫tag一下,tag必需要有私有倉庫的ip:port

    docker tag wxy_test 172.18.11.153:5000/centos

    修改配置文件

    vi /etc/docker/daemon.json

    改成如下內容:

    { "insecure-registries":["172.18.11.153:5000"] }

    完成後重啓docker

    systemctl restart docker `
    啓動容器

    docker start 64584c4300f1

    進行push

    docker push 172.18.11.153:5000/centos

    查看推送的鏡像

    curl 127.0.0.1:5000/v2/_catalog

  4. 在其餘機器上下載剛上傳的鏡像

    在其它安裝docker的服務器上修改配置文件

    /etc/docker/daemon.json

    修改如下內容:

    { "insecure-registries":["47.106.84.56:5000"] }

    ip爲以前上傳鏡像的registry的服務器ip,這裏跟以前的ip不同是由於用了雲服務器。

    修改完成後重啓docker,而後進行pull

    docker pull 47.106.84.56:5000/centos

相關文章
相關標籤/搜索