摘要:說明方括號表示里面的參數(shù)可省任何查詢結(jié)果都可以通過進(jìn)行篩選注釋符命令解釋必填參數(shù)系統(tǒng)安裝容器安裝依賴安裝容器服務(wù)容器版本倉庫倉庫是集中存放鏡像的地方公有倉庫私有倉庫注冊服務(wù)器存放倉庫的具體服務(wù)器公有倉庫輸入用戶信息登錄到本地保存用戶的
說明 :
[] 方括號表示 => 里面的參數(shù)可省 grep name 任何查詢結(jié)果都可以通過 grep 進(jìn)行篩選 # 注釋符 () 命令解釋 <> 必填參數(shù)
系統(tǒng) :
安裝容器 : yum install -y epel-relase # 安裝依賴 yum install docker-io # 安裝docker 容器服務(wù) : systemctl <[start,stop,restart]> docker.service | service docker start 容器版本 : docker version
倉庫 : 倉庫是集中存放鏡像的地方[公有倉庫,私有倉庫] (注冊服務(wù)器:存放倉庫的具體服務(wù)器)
公有倉庫 : Docker Hub => https://hub.docker.com/ docker login 輸入用戶信息登錄到 => Docker Hub => 本地 .dockercfg保存用戶的認(rèn)證信息 docker search # 不需要登錄 # 官方的鏡像一般為 基礎(chǔ)鏡像或者根鏡像 => docker.io/mysql # 個人用戶的鏡像一般為 用戶名/鏡像名稱 => sokminyo/mysql-1 docker pull www.self.com/mysql # 指定網(wǎng)站拉取鏡像 自動創(chuàng)建 : 用戶通過 Docker Hub指定跟蹤一個目標(biāo)網(wǎng)站上的項目,若有提交,則自動執(zhí)行創(chuàng)建 創(chuàng)建和使用私有庫 : 創(chuàng)建 : docker run -d -p 5000:5000 registry # 通過 registry鏡像 來創(chuàng)建私有庫,默認(rèn)容器地址為 /tmp/registry,最好先拉取 docker pull registry 創(chuàng)建指定 : docker run -d -p 5000:5000 -v /data/nginx/html:/tmp/registry registry # 指定路徑創(chuàng)建 打上標(biāo)簽 : docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] => docker tag <33fbbf4a24e5> 127.0.0.1:5000/tt 上傳鏡像 : docker push 127.0.0.1:5000/tt
鏡像 :
獲取鏡像 : docker pull <名稱>[:TAG(標(biāo)簽)] => docker pull php 查看鏡像 : docker images [名稱] => docker images 查看詳情 : docker inspect <名稱或Id> => docker inspect php [-f(指定內(nèi)容),...] docker inspect php -f {{".Id"}} 搜索鏡像 : docker search [OPTIONS] TERM => docker search php:7.1-fpm 刪除鏡像 : docker rmi <名稱> => docker rmi [-f(強(qiáng)制刪除)] php:7.1-fpm # 正在運(yùn)行的鏡像無法刪除 存出鏡像 : docker save -o <存出的文件名.格式(php.tar)> <鏡像名稱或Id> => docker save -o php.tar 894f8d826f6a 載入鏡像 : docker load --input php.tar(文件名稱)
容器 :
新建容器 : docker create -it <鏡像名稱或ID(php:7.1-fpm)> # 默認(rèn)情況下為不啟動 新建并啟動容器 : docker run 查看容器 : docker ps # 查看當(dāng)前運(yùn)行的容器 docker ps -a # 查看所有容器 運(yùn)行容器 : docker run <容器名orID> 停止容器 : docker stop <容器名orID> 開啟容器 : docker start <容器名orID> 終止容器 : docker kill <容器名orID> 重啟容器 : docker restart <容器名orID> 容器日志 : docker logs <容器名orID> 容器端口 : docker port <容器名orID> 刪除容器 : docker rm <容器名orID> 進(jìn)入容器 : docker exec -it <容器名orID> /bin/bash 導(dǎo)出容器 : docker export <容器名orID> >文件名.格式 => docker export mysql >mysql.tar 導(dǎo)入容器 : docker import 文件名.格式
容器中 :
安裝vi|vim : apt-get install -y vi|vim 更新apt : apt-get update # 安裝其他功能時,更新-安裝-更新
數(shù)據(jù)卷 : 供容器使用的特殊目錄 volume(卷)
創(chuàng)建 : 在運(yùn)行的時候加上 -v 可以使用多個 docker run -d -p -v /data/nginx/html:/usr/share/nginx/html (將本機(jī)的文件映射到容器中的文件) docker run -p 8080:80 --name test_nginx -v /data/nginx/html:/usr/share/nginx/html -d docker.io/nginx -p 8000:80 把容器80端口映射到服務(wù)8000 --name 設(shè)置名字 -d 后臺運(yùn)行|守護(hù) -v /data/nginx/html:/usr/share/nginx/html (將本機(jī)的文件映射到容器中的文件) more : -a stdin : 指定標(biāo)準(zhǔn)輸入輸出內(nèi)容類型 , 可選 STDIN/STDOUT/STDERR 三項 -d : 后臺運(yùn)行容器 , 并返回容器ID -i : 以交互模式運(yùn)行容器 , 通常與 -t 同時使用 -p: : 端口映射 -t : 為容器重新分配一個偽輸入終端 , 通常與 -i 同時使用 --name : 為容器指定一個名稱 --dns 8.8.8.8 : 指定容器使用的DNS服務(wù)器 , 默認(rèn)和宿主一致 --dns-search example.com: 指定容器DNS搜索域名 , 默認(rèn)和宿主一致 -h "mars": 指定容器的hostname -e username="ritchie": 設(shè)置環(huán)境變量 --env-file=[]: 從指定文件讀入環(huán)境變量 --cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運(yùn)行 -m :設(shè)置容器使用內(nèi)存最大值 --net="bridge": 指定容器的網(wǎng)絡(luò)連接類型 , 支持 bridge/host/none/container: 四種類型 --link=[]: 添加鏈接到另一個容器 --expose=[]: 開放一個端口或一組端口 數(shù)據(jù)卷容器 : 容器之間共享數(shù)據(jù)(掛載在同一個文件夾中) docker run -it -v /dbData --name dbData php # 刪除卷 docker rm -v dbData docker run -it --volumes-from dbData --name db1 php docker run -it --volumes-from dbData --name db2 php 數(shù)據(jù)卷遷移數(shù)據(jù) : 備份和恢復(fù)(自行了解)
端口映射實(shí)現(xiàn)訪問容器 :
端口映射 : docker run -p 端口:端口 自定義名稱 : docker run --name 名稱 容器互聯(lián) : docker run --link 容器名稱 docker公開連接 : 環(huán)境變量(env) 或 更新 /etc/hosts文件
使用Dockerfile創(chuàng)建鏡像 : 文本格式的配置文件
指令 : 一般格式為 instruction(指令) arguments(參數(shù)) , 指令包括 from , maintainer(維護(hù)者) , run , cmd 等 . 組成部分(一般而言) : 基礎(chǔ)鏡像信息 , 維護(hù)者信息 , 鏡像操作指令 , 容器操作指令 eg : # 第一行必須指定基于的基礎(chǔ)鏡像 # FROM[: ] FROM php:7.1 # 維護(hù)者信息 # MAINTAINER MAINTAINER huangzhhui # ENV 指定一個環(huán)境變量 , 可供 RUN 命令使用 , 并在容器中保持運(yùn)行 ENV PHPREDIS_VERSION 4.0.0 ENV HIREDIS_VERSION 0.13.3 ENV SWOOLE_VERSION 4.0.3 # 鏡像操作指令(可以有多個) # RUN 在shell終端中運(yùn)行命令,即 /bin/sh -C # 或者 # RUN ["executalbe","param1","param2"] 這里的[]非說明中的 , 使用 exec 執(zhí)行 RUN curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer && composer self-update --clean-backups # 容器暴露的端口號 # EXPOSE [ ...] EXPOSE 80 22 443 # 容器操作指令 ...... # (只能有一個,如果有多個只會執(zhí)行一個) # CMD ["executalbe","param1","param2"] 這里的[]非說明中的 , 使用 exec 執(zhí)行 (推薦) # 或者 # CMD command param1 param2 在 /bin/sh 中執(zhí)行 # 或者 # CMD ["param1","param2"] 提供給 entrypoint 的默認(rèn)參數(shù) CMD /usr/sbin/nginx 其他指令 : ADD : 復(fù)制指定的 src 到容器中的 dest COPY : 復(fù)制本地的 src 到容器 dest ENTRYPOINT : 配置容器啟動后執(zhí)行的命令 ,只能有一個 , 如果有多個只會執(zhí)行一個(最后一個生效) 1 : ENTRYPOINT command param1 param2 在 /bin/sh 中執(zhí)行 or 2 : ENTRYPOINT ["param1","param2"] VOLUME : VOLUME ["/data"] # 創(chuàng)建一個可以從本地主機(jī)或其他容器掛載的掛載點(diǎn) , 一般用于存放數(shù)據(jù)和保持?jǐn)?shù)據(jù) USER : USER daemon # 指定運(yùn)行容器是的用戶名或UID WORKDIR : WORKDIR /path/to/workdir # 為后續(xù) RUN , CMD , ENTRYPOINT 等指令配置工作目錄 . 可多個 如果后續(xù)路徑為相對路徑,則會基于之前的指令 WORKDIR /a WORKDIR b WORKDIR c RUN pwd # /a/b/c ONBUILD : ONBUILD [INSTRUCTION] 創(chuàng)建鏡像 : 完成 dockerFile 后 , 可通過 docker build [option] 來創(chuàng)建鏡像 可配置 .dockerignore 文件 , 來忽略 docker 路徑下的 目錄和文件
常見問題 :
docker組沒有 : could not change group /var/run/docker.sock to docker: group docker not found uname -r 查看內(nèi)核 Why:SELinux不支持 overlay2 graph driver Solve : vi /etc/sysconfig/docker,在docker里禁用selinux-enabled=false, 掛載失敗 : /usr/bin/docker-current: Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2/b35b5d54a4bb354ff5bbf4b8906db3acce819339c8c9bf378d9e388d9dedbed7-init/merged: invalid argument. Solve : rm -rf /var/lib/docker # 會刪除docker images vi /etc/sysconfig/docker-storage # 指定 DOCKER_STORAGE_OPTIONS="--storage-driver overlay" vi /etc/sysconfig/docker # 刪除 --selinux-enabled
圖片介紹 :
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/27730.html
摘要:實(shí)際上,認(rèn)為文本文件都是結(jié)構(gòu)化的,它將每一個輸入行定義為一個記錄,行中的每個字符串定義為一個域段,域和域之間使用分割符分割。 看到一篇Docker 技巧:刪除 Docker 容器和鏡像其中提到刪除標(biāo)簽為none的鏡像的方法,其中用到了awk,就去查了下,下面舉例說明: docker rmi $(docker images | awk $1 == && $2 == {print $3...
摘要:用了一段時間后,會發(fā)現(xiàn)它占用了不少硬盤空間。為了避免構(gòu)建鏡像時使用緩存,我在命令之前添加了一行命令。引入了命令,類似于上的命令,用于查看的磁盤使用情況。這些鏡像占用了超過磁盤空間。現(xiàn)在,已使用的磁盤空間又變成了。 譯者按: Docker鏡像,容器,數(shù)據(jù)卷以及網(wǎng)絡(luò)都會占用主機(jī)的磁盤空間,這樣的話,磁盤很容易就會被用完。這篇博客介紹了一個簡單的解決方案 - Docker System命令。...
摘要:與命令不同,使用命令只能創(chuàng)建容器而并不啟動選項鏡像名稱命令參數(shù)將標(biāo)準(zhǔn)輸入標(biāo)準(zhǔn)輸出標(biāo)準(zhǔn)錯誤鏈接到容器向容器的添加主機(jī)名與地址設(shè)置資源分配。輸入命令退出后,容器不會停止,而會繼續(xù)運(yùn)行。命令命令用于以格式顯示容器與鏡像的詳細(xì) docker命令詳解 前言 從技術(shù)老大那里聽說了docker,閑下來之后就簡單了解了一下,發(fā)現(xiàn)真的是一個好用的不得了的工具。遂周末去圖書館找了下相關(guān)資料,學(xué)習(xí)下姿勢。說...
閱讀 3435·2021-11-19 09:40
閱讀 1324·2021-10-11 11:07
閱讀 4857·2021-09-22 15:07
閱讀 2898·2021-09-02 15:15
閱讀 1971·2019-08-30 15:55
閱讀 544·2019-08-30 15:43
閱讀 886·2019-08-30 11:13
閱讀 1453·2019-08-29 15:36