Docker的學習1

来源:https://www.cnblogs.com/shy13138/archive/2019/09/14/11519210.html
-Advertisement-
Play Games

Docker是開源的應用容器引擎。可以理解為輕量級的虛擬機,又可以理解為開了掛的chroot。 官方解釋為docker是一個開源的項目,可以用來將任何應用以輕量級容器的形式,打包,發佈和運行。 docker架構: docker run images_name 運行容器 docker images 查 ...


Docker是開源的應用容器引擎。可以理解為輕量級的虛擬機,又可以理解為開了掛的chroot。

官方解釋為docker是一個開源的項目,可以用來將任何應用以輕量級容器的形式,打包,發佈和運行。

docker架構:

 

 

 

 

 

 

 

 

docker run images_name 運行容器

docker images 查看所有本地的容器

docker pull 獲取image

docker build -t image_name 路徑名 創建image

docker rm 刪除container

docker rmi 刪除image

docker ps 查看正在運行的容器

docker

-p 埠映射

-d 直接返回

docker cp 文件 容器id://容器內的地址 cp文件到容器內的地址,但當重啟後,文件不再容器內,這時就需要保存,保存的命令為:docker commit -m ‘message’ 容器id 新的容器名稱,這時就產生了一個新的image

docker stop 容器id 停止當前容器

docker ps -a 歷史容器

例:下載nginx鏡像並運行:

[root@localhost ~]# docker pull nginx Using default tag: latest latest: Pulling from library/nginx Digest: sha256:9688d0dae8812dd2437947b756393eb0779487e361aa2ffbc3a529dca61f102c Status: Image is up to date for nginx:latest docker.io/library/nginx:latest

運行nginx鏡像:

[root@localhost ~]# docker run -p 8080:80 -d docker.io/nginx #

cad31276eaaa32efa41eb5355189b5c657a4bac22cc0da24f43fd889c8e2c883 

將本地的8080埠映射到80埠

[root@localhost ~]# netstat -anp |grep 8080 tcp6 0 0 :::8080 :::* LISTEN 1972/docker-proxy

開放8080埠

[root@localhost ~]# iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

  

通過編寫簡單的文件自創docker鏡像

1、首先建立文件夾Docker

2、在Docker文件夾下建立Dockerfile文件,並編輯:

FROM alpine:latest ##是一個專門針對docker做的一個環境 MAINTAINER xbf CMD echo "Hello Docker"

3、利用docker build 命令構建新的image

[root@localhost dockertest]# docker build -t hello_docker .

# Sending build context to Docker daemon 2.048kB

Step 1/3 : FROM alpine:latest

latest: Pulling from library/alpine

9d48c3bd43c5: Pull complete

Digest: sha256:72c42ed48c3a2db31b7dafe17d275b634664a708d901ec9fd57b1529280f01fb

Status: Downloaded newer image for alpine:latest

---> 961769676411

Step 2/3 : MAINTAINER xbf

---> Running in c92d0fa7be5c

Removing intermediate container c92d0fa7be5c

---> 3f3ea64dc595

Step 3/3 : CMD echo "Hello Docker"

---> Running in 6568cd66097d Removing intermediate container 6568cd66097d

---> d7cc9ec010e5

Successfully built d7cc9ec010e5

Successfully tagged hello_docker:latest

[root@localhost dockertest]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

hello_docker latest d7cc9ec010e5 9 seconds ago 5.58MB

nginx latest ab56bba91343 20 hours ago 126MB

alpine latest 961769676411 3 weeks ago 5.58MB

hello-world latest fce289e99eb9 8 months ago 1.84kB

4、利用docker run來運行此image

[root@localhost dockertest]# docker run hello_docker Hello Docker

第二個dockerfile

1、首先建立文件夾Docker2

2、在Docker2文件夾下建立Dockerfile文件,並編輯:

FROM ubuntu

MAINTAINER root

RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list

RUN apt-get update && apt-get install nginx -y

COPY index.html /var/www/html

ENTRYPOINT ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]

EXPOSE 80

  

3、建立www/index.html文件

touch index.html 
Hello nginx.ubuntu

4、構建新的image。

docker build -t whr/hello-nginx /dockertest/Docker2

[root@localhost Docker2]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

whr/hello-nginx latest f6efa129cd16 2 minutes ago 149MB

  

5、啟動whr/hello-nginx

[root@localhost Docker2]# docker run -d -p 80:80 whr/hello-nginx 
ada48aa3a8fef5e1feb35e5c90ff176f584cd69b8ad1af403de96cd883247599

 

Dockerfile的語法

  FROM base image

  RUN 執行命令

  ADD 添加文件

  COPY 拷貝文件

  CMD 執行命令

  EXPOSE 暴露視窗

  WORKDIR 指定路徑

  MAINTAINER 維護者

  ENV 設定環境變數

  ENTRYPOINT 容器入口

  USER 指定用戶

  VOLUME mount point

鏡像分層

Dockerfile中的每一行都會產生一個新層


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 2 命令行入門 2019.9.14 五大命令行工具 二進位可執行文件 shell內置命令 解釋性腳本 shell函數 別名 1. shell函數 shell函數就是由shell自己執行的函數,在我們這裡就是由 Bash 執行的函數 我們定義了一個 fac() 函數,使用 seq 生成一串數字,用 p ...
  • 1.1 Linux 的安裝 安 裝 採 用 在 虛 擬 機 中 安 裝 , 以 方 便 不 同 班 級 授 課 時 , 需 要 重 復 安裝的情況。 1.1.1 配置虛擬機 1. 在 VMware Worksta tio n 中創建新的 虛 擬 機 ,選 擇 自 定 義 安 裝 ,點 擊 下一步 。 ...
  • 1 win10配置 Vagrant 環境 2019.9.13 Vagrant 概述 vagrant是一個操作虛擬機的工具.是一個基於Ruby的工具,用於創建和部署虛擬化開發環境。 通過命令和配置文件來管理虛擬機,很快就能完成一套開發環境的部署,並可以打包傳播,統一了開發環境,也解決了重覆配置環境的麻 ...
  • 出現問題的原因: 圖一 出現問題的界面: 圖二 按esc,無作用。 圖三 按esc,按i,依然無作用。 圖四 解決方法: (1)按esc,i無用, 在圖2按s成功到登陸界面。 (2)桌面修改為disk,重啟依然需要按s。 (3)gedit /etc/fstab 刪除了添加的自動掛載的命令。 (4)重 ...
  • 下麵就是我針對docker file同一個文件,按照layer層的個數的多少,分別構建了兩個鏡像的jenkins-master。兩者大小相差300MB。 <1> layer層數太多,沒有將命令合併為一條命令 <2> layer層數很少,將全部命令合併為一條命令 然後,分別執行構建命令 root >> ...
  • TeamViewer是一個遠程共用桌面軟體,使遠程傳輸變得簡單快速,遠程訪問安全可靠,能在任何防火牆後臺進行遠程式控制制。只需用戶在兩台電腦上同時運行這個軟體就可以開始工作。使用時關閉殺毒軟體,防止誤報被禁用! 下載地址: 鏈接:https://pan.baidu.com/s/1mZtmg8VBzDp ...
  • 一、下載地址: 官網地址:https://www.netresec.com/?page=RawCap 百度雲:鏈接:https://pan.baidu.com/s/1mWCOTRF5XicuJitBAVQH7g 提取碼:03lh 二、使用方法: cmd命令行內執行RawCap.exe如下: D:\r ...
  • 一、下載地址: 小米球官網:http://ngrok.ciqiuwl.cn/ windows上使用小米球內網穿透軟體: 鏈接:https://pan.baidu.com/s/1VE6uDLowJnCb9dRg7iHKJw 提取碼:49ln 二、使用方法: 下載解壓後,在cmd命令行下輸入: ngro ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...