日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Git+Docker】Docker初期学习认识和安装配置详解

發布時間:2025/4/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Git+Docker】Docker初期学习认识和安装配置详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Docker:?

特性:

1、以應用為中心

2、自動化構建

3、版本控制

4、組件重用

5、鏡像共享

6、工具生態系統

具體后續學習

優勢:

1、文件系統隔離

2、進程隔離

3、網絡隔離

4、資源隔離和分組

為什么選擇docker為服務載體?

1、高性能

2、輕量級

3、部署快

4、文件系統隔離

5、高靈活性

6、進程隔離

?

docker在測試領域的使用范圍

?

docker的安裝:

https://blog.csdn.net/qq_36892341/article/details/73918672

https://blog.csdn.net/fgf00/article/details/51893771

基本概念

Docker 包括三個基本概念

  • 鏡像(Image)
  • 容器(Container)
  • 倉庫(Repository)

先理解了這三個概念,就理解了 Docker 的整個生命周期。

1、docker安裝與啟動

yum install -y epel-release yum install docker-io # 安裝docker # 配置文件 /etc/sysconfig/dockerchkconfig docker on # 加入開機啟動 service docker start # 啟動docker服務# 基本信息查看 docker version # 查看docker的版本號,包括客戶端、服務端、依賴的Go等 docker info # 查看系統(docker)層面信息,包括管理的images, containers數等 docker pull centos 下載 docker images [ centos ] 查看 docker run -i -t centos /bin/bash

?

2、鏡像的獲取與容器的使用

# 搜索鏡像 docker search <image> # 在docker index中搜索image # 下載鏡像 docker pull <image> # 從docker registry server 中下拉image # 查看鏡像 docker images: # 列出imagesdocker images -a # 列出所有的images(包含歷史)docker rmi <image ID>: # 刪除一個或多個image # 使用鏡像創建容器 docker run -i -t sauloal/ubuntu14.04 docker run -i -t sauloal/ubuntu14.04 /bin/bash # 創建一個容器,讓其中運行 bash 應用,退出后容器關閉 docker run -itd --name centos_aways --restart=always centos #創建一個名稱centos_aways的容器,自動重啟 # --restart參數:always始終重啟;on-failure退出狀態非0時重啟;默認為,no不重啟# 查看容器docker ps :列出當前所有正在運行的containerdocker ps -l :列出最近一次啟動的containerdocker ps -a :列出所有的container(包含歷史,即運行過的container)docker ps -q :列出最近一次運行的container ID # 再次啟動容器docker start/stop/restart <container> #:開啟/停止/重啟containerdocker start [container_id] #:再次運行某個container (包括歷史container) #進入正在運行的docker容器docker exec -it [container_id] /bin/bashdocker run -i -t -p <host_port:contain_port> #:映射 HOST 端口到容器,方便外部訪問容器內服務,host_port 可以省略,省略表示把 container_port 映射到一個動態端口。# 刪除容器docker rm <container...> #:刪除一個或多個containerdocker rm `docker ps -a -q` #:刪除所有的containerdocker ps -a -q | xargs docker rm #:同上, 刪除所有的container

?

docker run 和 docker create 參數基本一樣,run是創建容器并后臺啟動,create是只創建容器。?

docker run 相當于docker create 和 docker start

run創建容器:docker run -itd create創建: docker create -it-t, --tty Allocate a pseudo-TTY-i, --interactive Keep STDIN open even if not attached-d, --detach Run container in background and print container ID #run的參數

?

容器資源限制參數

-m 1024m --memory-swap=1024m # 限制內存最大使用(bug:超過后進程被殺死) --cpuset-cpus="0,1" # 限制容器使用CPU

?

docker容器隨系統自啟參數

docker run --restart=always redis
  • no?– 默認值,如果容器掛掉不自動重啟
  • on-failure?– 當容器以非 0 碼退出時重啟容器?
    • 同時可接受一個可選的最大重啟次數參數 (e.g.?on-failure:5).
  • always?– 不管退出碼是多少都要重啟
docker run -itd --name test01 -p IP:sport:dport -m 1024m --memory-swap=1024m --cpuset-cpus="0,1" --restart=always <image ID> docker exec -it test01 bash # 進入容器也可以用exec命令

?

?

查看容器狀態信息

[root@localhost ~]# docker stats [root@localhost ~]# docker stats --no-stream

?

?

進入容器 - nsenter 命令

nsenter安裝?
nsenter 工具在 util-linux 包2.23版本后包含。 如果系統中 util-linux 包沒有該命令,可以按照下面的方法從源碼安裝。

cd /usr/src ; wget https://www.kernel.org/pub/linux/utils/util-linux/v2.28/util-linux-2.28.tar.gz ./configure --without-ncurses make nsenter && sudo cp nsenter /usr/local/bin

?

nsenter使用?

nsenter 可以訪問另一個進程的名字空間。nsenter 要正常工作需要有 root 權限。?
為了連接到容器,你還需要找到容器的第一個進程的 PID,可以通過下面的命令獲取。

PID=$(docker inspect --format "{{ .State.Pid }}" <container>)

?

?

通過這個 PID,就可以連接到這個容器:

nsenter --target $PID --mount --uts --ipc --net --pid

?

更簡單的,建議下載 .bashrc_docker,并將內容放到 .bashrc 中。

wget -P ~ https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker; echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc; source ~/.bashrc

?

?

這個文件中定義了很多方便使用 Docker 的命令,例如 docker-pid 可以獲取某個容器的 PID;而?
docker-enter 可以進入容器或直接在容器內執行命令。

echo $(docker-pid <container>) docker-enter <container> ls docker-enter <container> bash

?

?

3、持久化容器與鏡像

3.1 通過容器生成新的鏡像

運行中的鏡像稱為容器。你可以修改容器(比如刪除一個文件),但這些修改不會影響到鏡像。不過,你使用docker commit 命令可以把一個正在運行的容器變成一個新的鏡像。

docker commit <container> [repo:tag] # 將一個container固化為一個新的image,后面的repo:tag可選。

?

3.2 持久化容器

export命令用于持久化容器

docker export <CONTAINER ID> > /tmp/export.tar

?

3.3 持久化鏡像

Save命令用于持久化鏡像

docker save 鏡像ID > /tmp/save.tar

?

?

3.4 導入持久化container

刪除container 2161509ff65e

docker rm 2161509ff65e

?

?

導入export.tar文件

cat /tmp/export.tar | docker import - export:latest

?

?

3.5 導入持久化image

刪除image daa11948e23d

docker rmi daa11948e23d

?

?

導入save.tar文件

docker load < /tmp/save.tar

?

?

對image打tag

docker tag daa11948e23d load:tag

?

?

3.6 export-import與save-load的區別

導出后再導入(export-import)的鏡像會丟失所有的歷史,而保存后再加載(save-load)的鏡像沒有丟失歷史和層(layer)。這意味著使用導出后再導入的方式,你將無法回滾到之前的層(layer),同時,使用保存后再加載的方式持久化整個鏡像,就可以做到層回滾。(可以執行docker tag 來回滾之前的層)。

3.7 一些其它命令

docker logs $CONTAINER_ID #查看docker實例運行日志,確保正常運行docker inspect $CONTAINER_ID #docker inspect <image|container> 查看image或container的底層信息docker build <path> 尋找path路徑下名為的Dockerfile的配置文件,使用此配置生成新的imagedocker build -t repo[:tag] 同上,可以指定repo和可選的tagdocker build - < <dockerfile> 使用指定的dockerfile配置文件,docker以stdin方式獲取內容,使用此配置生成新的imagedocker port <container> <container port> 查看本地哪個端口映射到container的指定端口,其實用docker ps 也可以看到

?

一些使用技巧

docker文件存放目錄

Docker實際上把所有東西都放到/var/lib/docker路徑下了。

[root@localhost docker]# ls -F containers/ devicemapper/ execdriver/ graph/ init/ linkgraph.db repositories-devicemapper volumes/

?

?

containers目錄當然就是存放容器(container)了,graph目錄存放鏡像,文件層(file system layer)存放在graph/imageid/layer路徑下,這樣我們就可以看看文件層里到底有哪些東西,利用這種層級結構可以清楚的看到文件層是如何一層一層疊加起來的。


轉載請務必保留此出處:http://blog.csdn.net/fgf00/article/details/51893771


一張圖總結 Docker 的命令

轉載于:https://www.cnblogs.com/conquerorren/p/8808046.html

總結

以上是生活随笔為你收集整理的【Git+Docker】Docker初期学习认识和安装配置详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。