學習的一些疑問
如何熱更新鏡像(images)?(你可以快速啟動或者銷毀容器。這種時間幾乎是實時的) 如何熱更新游戲服? 好處在于各個應用之間環(huán)境相互獨立,即使某一個容器崩潰也不會影響到其它容器; 每個容器使用端口如何維護?(方法1寫在Dockerfile里面,不靈活;方法2在run的時候-p指定); 那這樣的話,會存在好多l(xiāng)inux用戶,相當于每一個容器就要維護一個物理機(虛擬); 需要一套工具來管理維護鏡像、容器的操作和狀態(tài);目前主流使用docker都是應用到哪些場景中?
1. docker的二個軟件
Docker: 開源的容器虛擬化平臺;
Docker Hub: Software-as-a-Service平臺,用來共享和管理docker容器。2. docker的三大模塊
Docker images.(鏡像)
Docker registries.(倉庫)Docker container.(容器)3. 常用命令
3.1. 常用鏡像命令
docker image(查看鏡像信息)
docker build(創(chuàng)建鏡像)Dockerfile'#注釋'FROM 基于哪個鏡像為基礎MAINTAINER 維護者信息RUN 運行指令ADD 復制本地文件到鏡像EXPOSE 設置開放端口CMD 容器啟動后允許的程序WORKDIR 切換工作目錄-t 添加tagbuild后面需要接路徑3.2. 少用鏡像命令
docker pull(獲取鏡像)
docker push(上傳鏡像)docker search(搜索鏡像)-s N 只搜索指定星級以上的鏡像docker rmi(刪除鏡像)docker tag [id] [new name:tag] (修改tag)docker save(保存鏡像)docker load(加載鏡像)docker load --input xxx.tardocker load < xxx.tarload與import的區(qū)別,鏡像是完整的與快照是丟棄歷史記錄和元數(shù)據(jù)信息的docker rmi $(docker images -q -f "dangling=true")(清理所有未打過標簽的本地鏡像)3.3. 常用容器命令
docker run([下載鏡像并]啟動容器)
-t 分配一個偽終端-i 打開標準輸入-d 后臺運行-v 創(chuàng)建并掛載數(shù)據(jù)卷(可有多個)--volumes-from 掛載數(shù)據(jù)卷(可有多個)-p 指定映射端口 (ip:port:containerPort/udp|ip::containerPort|port:containerPort)-P 隨機映射端口--name 自定義容器名字--rm 終止后立即刪除容器--link : 容器互聯(lián)docker start(啟動已終止容器)docker stop(終止容器)nsenter(進入容器)(推薦)PID=$(docker inspect --format "{{ .State.Pid }}" )nsenter --target $PID --mount --uts --ipc --net --pid3.4. 少用容器命令
docker commit(提交容器)
-m --massage="" 提交信息-a --author="" 作者信息-p --pause=true 提交時暫停容器運行docker attach(進入容器)docker ps(查看正在運行的容器)-a 查看已終止docker logs [container ID or NAMES] 查看(后臺)運行日志docker export(導出容器為文件)docker export > xxx.tardocker import(文件快照導入鏡像)cat xxx.tar | docker import - test/name:v1.0docker import http://xxx.tgz test/namedocker rm(刪除容器)默認不會刪除運行中的容器docker rm $(docker ps -a -q) 清理所有處于終止狀態(tài)的容器-v 同時刪除數(shù)據(jù)卷4. 安裝
4.1. 在CentOS7中安裝
curl -sSL https://get.docker.com/ | sh //下載官服腳本按照chkconfig docker on //設置開機自動啟動
新聞熱點
疑難解答