Docker學習筆記

鏡像

獲取鏡像

docker pull 鏡像服務器地址/鏡像名稱:版本號

查看鏡像

docker images

刪除鏡像

  1. 普通刪除
    docker rmi 鏡像名稱或ID

  2. 強行刪除鏡像
    docker rmi -f 鏡像名稱或ID

創建鏡像

基于已有鏡像的容器創建

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

CONTAINER:容器ID
主要選項包括:
-a, --autor="" 作者信息
-m, --message="" 提交信息
-p, --pause=true 提交時容器暫停運行

保存鏡像

如保存本地centos:0.1鏡像為文件centos_0.1.tar

docker save -o centos_0.1.tar centos:0.1

載入鏡像

docker load -- input centos_0.1.tardocker load < centos_0.1.tar

容器

創建容器

1.普通方式
docker create -it 鏡像名稱:TAG

docker start

2.新建并啟動容器
docker run -t -i centos:7 /bin/bash

-t:讓Docker分配一個偽終端并綁定到容器的標準輸入上
-i:讓容器的標準輸入保持打開

用戶可以按ctrl+D或輸入exit退出容器,退出后容器自動停止運行

終止容器

docker stop 容器ID

docker restart可重啟容器

進入容器

  1. attach命令
    docker run -idt centos docker attach 容器NAMES

  2. exec命令
    docker exec -ti 鏡像ID /bin/bash

  3. nsenter工具

刪除容器

docker rm 容器ID

如果需要強制刪除容器則加上-f參數
docker rm -f 容器ID

導入和導出容器

  1. 導出容器
    docker export CONTAINER > 快照文件.tar

  2. 導入容器
    cat 容器快照.tar | docker import 容器快照.tar

倉庫

  1. 拉取鏡像
    docker pull daocloud.io/library/registry:latest

  2. 啟動私有倉庫

    2.1 語法
    docker run -p 5000:5000 -v <HOST_DIR>:/var/lib/registry daocloud.io/registry

    2.2 示例:

docker run -d -v /home/docker_repo:/var/lib/registry -p 5000:5000 --restart=always --name registry daocloud.io/library/registry
  1. 驗證倉庫是否啟動
    輸入http://127.0.0.1:5000/v2/,如果出現界面則正常

  2. 根據已有鏡像打TAG
    docker tag hello-world 127.0.0.1:5000/hello-world

  3. 上傳鏡像
    docker push 127.0.0.1:5000/hello-world

  4. 驗證鏡像是否上傳成功
    輸入http://127.0.0.1:5000/v2/_catalog,如果出現界面則正常

  5. 從倉庫中下載鏡像

docker rmi hello-world
docker pull 127.0.0.1:5000/hello-world

數據管理

掛載一個主機目錄作為數據卷

docker run -ti -v /localhost/dbdata:/usr/dbdata centos:0.1 /bin/bash

  1. "/localhost/dbdata"是主機本地目錄
  2. "/usr/dbdata"是容器內的目錄,如果目錄不存在,容器會自動創建

數據卷容器

由已有鏡像創建一個數據卷

docker run -it -v /dbdata --name dbdata daocloud.io/centos

創建新的容器并掛載已有數據卷

docker run -it  --volumes-from dbdata --name db1 daocloud.io/centos
docker run -it  --volumes-from dbdata --name db1 daocloud.io/centos

刪除容器同時刪除數據卷

docker rm -v db1

相關中間件

Redis

1.指定配置文件及持久化目錄
docker run -d --net=host --volumes-from redis-data -v /home/docker_repo/redis/conf/redis-16379.conf:/usr/local/etc/redis/redis.conf --name myredis redis redis-server /usr/local/etc/redis/redis.conf

Zookeeper

docker run -d -p 12181:2181 -e ZOO_SERVERS='server.1=0.0.0.0:2181' --name zookeeper daocloud.io/library/zookeeper

RabbitMQ

  1. 啟動RabbitMQ
    docker run -d --hostname my-rabbit --name some-rabbit daocloud.io/rabbitmq:3

  2. 啟動帶有WEB控制臺的RabbitMQ
    docker run -d --net=host --name my-rabbit daocloud.io/rabbitmq:3-management

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容