鏡像
獲取鏡像
docker pull 鏡像服務器地址/鏡像名稱:版本號
查看鏡像
docker images
刪除鏡像
普通刪除
docker rmi 鏡像名稱或ID
強行刪除鏡像
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.tar
或 docker 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
可重啟容器
進入容器
attach命令
docker run -idt centos docker attach 容器NAMES
exec命令
docker exec -ti 鏡像ID /bin/bash
nsenter工具
刪除容器
docker rm 容器ID
如果需要強制刪除容器則加上-f參數
docker rm -f 容器ID
導入和導出容器
導出容器
docker export CONTAINER > 快照文件.tar
導入容器
cat 容器快照.tar | docker import 容器快照.tar
倉庫
拉取鏡像
docker pull daocloud.io/library/registry:latest
-
啟動私有倉庫
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
驗證倉庫是否啟動
輸入http://127.0.0.1:5000/v2/
,如果出現界面則正常根據已有鏡像打TAG
docker tag hello-world 127.0.0.1:5000/hello-world
上傳鏡像
docker push 127.0.0.1:5000/hello-world
驗證鏡像是否上傳成功
輸入http://127.0.0.1:5000/v2/_catalog
,如果出現界面則正常從倉庫中下載鏡像
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
- "/localhost/dbdata"是主機本地目錄
- "/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
啟動RabbitMQ
docker run -d --hostname my-rabbit --name some-rabbit daocloud.io/rabbitmq:3啟動帶有WEB控制臺的RabbitMQ
docker run -d --net=host --name my-rabbit daocloud.io/rabbitmq:3-management