docker導入鏡像 liunx_docker掃盲?面試連這都不會就等著掛吧

8c96ba55d2bff16ff0e1f7998c0201e0.png

推薦閱讀:

java喵:6大面試技能樹:JAVA基礎+JVM+算法+數據庫+計算機網絡+操作系統?zhuanlan.zhihu.com
3762746d617a022be0eb67366ce6eab1.png
一只Tom貓:都是“Redis惹的禍”,害我差點掛在美團三面,真是“虛驚一場”!?zhuanlan.zhihu.com
27b663e7157efe45a4e0512f4d639328.png
現在很多公司項目部署都是采用K8S docker容器方式,出門面試被問的概率極大,如果被面試官問docker相關知識點直接懵逼,那么基本就是被pass了,除非其他方面技術過硬。所以這種相對前沿的技術,就算達不到精通的程度,起碼還是要了解基礎理論和操作

一.安裝docker

Docker要求運行在Centos 7上,要求系統為64位,系統內核版本3.10以上

  • uname -an 查看當前系統版本
  • yum -y install docker 下載安裝docker
  • service docker start 啟動docker服務
  • docker version 檢查docker是否安裝成功

當看到下圖的信息,就是表示本機docker已經安裝成功,很簡單

55d81e72a2caf4b75c092c3c5a264342.png

二.鏡像操作

創建容器要以鏡像為基礎,所以先講下docker鏡像的操作

搜索鏡像

docker images ll 查看下本機的是否已經有了鏡像

目前機器里還沒有鏡像,去Docker Hub下載(鏡像還可自定義,這里就不細說了)

docker search java ,還能指定具體的版本進行下載,

例如:docker search Ubuntu:1.2.5.4,可以進行搜docker Hub 會列出很多鏡像

5bf1c45a3dbcd399f2387f11b9bf25e2.png

下載鏡像

docker pull http://docker.io/nginx 進行下載

下載到本地的鏡像要比docker Hub上搜索出來的要大,因為下載過程中自動解壓了,在查看鏡像列表就有了剛才下載的鏡像

列表包含了倉庫名,版本標簽,鏡像ID,創建時間以及所占用的空間

95f940274a24d631a21a70c9a58dd15d.png

刪除鏡像

刪除沒用的鏡像docker rmi 鏡像id

34b9ee2b0940f2eec8f2862cb7ab7a8a.png

三.容器的操作

前邊我們已經下載好了Nginx的鏡像,接下來我們就創建一個只有Nginx應用的容器

docker run -i -t <IMAGE_ID> /bin/bash

-i:標準輸入給容器 -t:分配一個虛擬終端 /bin/bash:執行bash腳本

docker run -idt --name container_nginx -p 8080:80  docker.io/nginx復制代碼

啟動一個使用鏡像http://docker.io/nginx,名字container_nginx的容器,-p 8080:80表示將容器的80端口映射到主機的8080端口,這樣我們只要訪問主機的8080端口就可以訪問到容器的服務了。

注意:name前面是兩個-, 端口前面有-p, http://docker.io/nginx是鏡像名,8080是主機的端口,80是Nginx應用的端口

主機上的一個端口只能映射一個容器端口,不可以多個容器端口對應一個主機端口(如果容器安裝的centos類的系統,那么容器端口隨便設定,但如果容器內只是單純的應用,那么容器端口要是應用自身的端口)

e6c80f69e72704458b3ac5c31441abe9.png

這樣我們就創建并啟動了一個容器!

exit 退出容器
docker ps 查看運行中的容器
docker ps -a 查看運行中和非運行中的所有容器
docker exec -it container_nginx /bin/bash 進入容器
如果容器還未啟動 執行docker start container_nginx

進入容器后啟動Nginx

whereis nginx 找Nginx的啟動目錄

[root@iz2zehzeir87zi8q99krk1z ~]# docker start container_nginxcontainer_nginx[root@iz2zehzeir87zi8q99krk1z ~]# docker exec -it container_nginx /bin/bashroot@84683e425116:/# whereis  nginxnginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginxroot@84683e425116:/#  /usr/sbin/nginx 復制代碼

此時在瀏覽器訪問 http://51.110.218.9:8080/ 就可以直接訪問容器內的Nginx

aa691be1030dd90bcb116bb2451c9584.png

如果訪問不成功,可能是主機端口的防火墻開著,執行下邊的命令關閉

/ sbin / iptables -I INPUT -p tcp --dport 8080 -j ACCEPT復制代碼

由于我用的阿里云服務器,所以需要在阿里云把8080端口開放

34e0708d055ed84a76eac59618228c1e.png

刪除容器

容器刪除之前先將容器停止

docker stop container_nginx 或者是容器的id

docker rm -f container_nginx 容器刪除

docker start 與 docker run 的區別

docker start name 啟動一個已經創建的容器

docker run 創建并啟動一個容器

docker run 命令其實是 docker create 和 docker start 的命令組合,先執行docker create 創建一個容器 再接著docker start啟動

主機和容器文件相互復制

從主機復制到容器 sudo docker cp host_path containerID:container_path從容器復制到主機 sudo docker cp containerID:container_path host_path復制代碼

請注意,以上這兩個命令都是在主機中執行的,不能再容器中執行

docker cp container_nginx:/usr/local/xin.txt  /usr/local/software/   容器向主機復制文件docker cp /usr/local/xinzhifu.txt  container_nginx:/usr/local/  主機向容器復制文件復制代碼

這樣一個基礎的docker容器就創建完了 。。。。。。。。。。。。

反過來大家再看一看docker的容器與鏡像的區別 http://www.cnblogs.com/linjiaxin/p…

那么其實鏡像與容器的本質區別并不大,那么鏡像可以生成容器 ,容器是否可以做成鏡像呢?

docket commit container_nginx  image_nginx:v1復制代碼

41357c579bbcc2ea596bf337f5cd434e.png

container_nginx 容器名

image_nginx:v1 自己起一個鏡像的名字:版本號


這樣做有什么好處呢?

例如:A、B兩臺機器都想安裝redis,A機器上創建容器并在容器中做好redis的一切配置,讓后將這個容器docker commit 成鏡像image_redis,B機器也想要安裝redis,直接用鏡像image_redis創建容器就行了,docker就是做這樣一勞永逸的事情。

而且傳統方式得在每臺機器上安裝配置redis非常麻煩

四.鏡像的導入與導出

鏡像壓縮打包 (主機上進行操作),有兩種方式 docker save 與 docker load 和 docker export 與 docker import

docker save nginx | gzip > nginx_xin_image.tar.gz  將現有的鏡像壓縮打包docker load -i nginx_xin_image.tar.gz  壓縮的鏡像解壓docker images 進行查看復制代碼

docker save 是直接將鏡像進行打包 docker save <鏡像名>或<鏡像id>

docker export container_nginx> nginx_image.tar  cat nginx_image.tar | sudo docker import  - nginx_image:import復制代碼

docker export 是直接將容器進行打包 docker export <容器名>或<容器id>

需要注意兩種方法配套的,切不可混用。雖然導入導出時沒問題,但是在創建容器時候會報錯

如果使用import導入save產生的文件,雖然導入不提示錯誤,但是啟動容器時會提示失敗,

會出現類似"docker: Error response from daemon: Container command not found or does not exist"的錯誤。

類似,使用load載入export產生的文件,也會出現問題。

先寫到這,文章略顯粗糙,希望對您有一點用,學無止境加油!


作者:程序員內點事
鏈接:https://juejin.im/post/5e38e60d6fb9a07c9f3fcaed
來源:掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/392655.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/392655.shtml
英文地址,請注明出處:http://en.pswp.cn/news/392655.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

crontab里shell腳本將top信息寫入文件

crontab里shell腳本將top信息寫入文件&#xff1a; 注&#xff1a; 1、top -n 1代表執行1次退出&#xff08;默認top是不退出的&#xff09;,-d 1代表每1秒執行1次 2、crontab里需加/bin/bash # crontab -e */5 * * * * /bin/bash /usr/local/bin/top.sh # vi top.sh #!/bin/ba…

leetcode 1030. 距離順序排列矩陣單元格(bfs)

給出 R 行 C 列的矩陣&#xff0c;其中的單元格的整數坐標為 (r, c)&#xff0c;滿足 0 < r < R 且 0 < c < C。 另外&#xff0c;我們在該矩陣中給出了一個坐標為 (r0, c0) 的單元格。 返回矩陣中的所有單元格的坐標&#xff0c;并按到 (r0, c0) 的距離從最小到…

Linux iptables:規則原理和基礎

什么是iptables&#xff1f; iptables是Linux下功能強大的應用層防火墻工具&#xff0c;但了解其規則原理和基礎后&#xff0c;配置起來也非常簡單。 什么是Netfilter&#xff1f; 說到iptables必然提到Netfilter&#xff0c;iptables是應用層的&#xff0c;其實質是一個定義規…

太陽系八大行星碰撞的視頻_火星的身世:從太陽系的起源說起

大約46億年前盤狀的太陽星云從一大片又冷又暗的氣體云中誕生太陽自己并沒有任何暴露確切年齡的線索&#xff0c;我們之所以能夠知道太陽系的“生日”&#xff0c;是因為迄今從隕石中找到的最古老固體物質&#xff0c;年齡約為45.68億年。一般認為&#xff0c;太陽系的各個地方是…

refract推導_我們如何利用Refract來利用React式編程的力量

refract推導by Joe McGrath通過喬麥克格拉斯 我們如何利用Refract來利用React式編程的力量 (How we harnessed the power of reactive programming with Refract) Have you ever wondered how open-source libraries built by companies come into existence?您是否想過公司建…

sql server:查詢系統表

---查看所有存儲過程或視圖的位置 select a.name,a.[type],b.[definition] from sys.all_objects a,sys.sql_modules b where a.is_ms_shipped0 and a.object_id b.object_id and a.[type] in (P,V,AF) order by a.[name] ASC GO--1、查看所有存儲過程與函數 exec sp_store…

UDP數據包的大小

問題來源于日志信息&#xff0c;在這里總結一下&#xff0c;后續在補充新的內容。在鏈路層&#xff0c;由以太網的物理特性決定了數據幀的長度為&#xff08;46&#xff0b;18&#xff09;---&#xff08;1500&#xff0b;18&#xff09;&#xff0c;其中的18是鏈路層的首部和尾…

博科查看光功率_法拉第旋光器:非互易性旋轉光的偏振

法拉第旋光器是利用法拉第效應制作的光學器件&#xff0c;當入射光正向(或反向)進入旋光器時&#xff0c;入射光偏振面會發生旋轉。法拉第效應1845年&#xff0c;法拉第發現&#xff1a;當一束平面偏振光通過置于磁場中的磁光介質時&#xff0c;平面偏振光的偏振面就會隨著平行…

Object.prototype 原型和原型鏈

Object.prototype 原型和原型鏈 原型 Javascript中所有的對象都是Object的實例&#xff0c;并繼承Object.prototype的屬性和方法&#xff0c;有些屬性是隱藏的。換句話說&#xff0c;在對象創建時會存在預定義的屬性&#xff0c;其中有一個屬性就是原型對象。在函數對象中存在原…

leetcode 406. 根據身高重建隊列(貪心算法)

假設有打亂順序的一群人站成一個隊列。 每個人由一個整數對 (h, k) 表示&#xff0c;其中 h 是這個人的身高&#xff0c;k 是應該排在這個人前面且身高大于或等于 h 的人數。 例如&#xff1a;[5,2] 表示前面應該有 2 個身高大于等于 5 的人&#xff0c;而 [5,0] 表示前面不應該…

java和vue2.0

java中的el表達式${對象.屬性}和vue中的雙向數據綁定{{mode.xx}}感覺有點類似轉載于:https://www.cnblogs.com/YangBinChina/p/11180460.html

oh-my-zsh官方教程

https://github.com/robbyrussell/oh-my-zsh/wiki

leetcode 134. 加油站

在一條環路上有 N 個加油站&#xff0c;其中第 i 個加油站有汽油 gas[i] 升。 你有一輛油箱容量無限的的汽車&#xff0c;從第 i 個加油站開往第 i1 個加油站需要消耗汽油 cost[i] 升。你從其中的一個加油站出發&#xff0c;開始時油箱為空。 如果你可以繞環路行駛一周&#…

ps怎么對比原圖快捷鍵_PS學習之旅:ps如何制作滿天星,讓你夜晚的天空圖片更美...

ps學習之旅&#xff0c;本文介紹關于如何利用ps軟件來制作滿天星&#xff0c;讓你夜晚的天空圖片更美&#xff0c;操作很簡單哦。1工具/原料Adobe Photoshop CS6軟件圖片一張2效果展示原圖&#xff1a;效果圖&#xff1a;3方法/步驟(1)打開PS&#xff0c;選擇你想要加星星的一張…

linux程序莫名異常怎么查

內存異常經常導致程序出現莫名其妙的錯誤&#xff0c;往往很難查證&#xff0c;本文介紹在linux下的各種常見內存異常的查證工具和方法。1 訪問空指針/未初始化指針/重復釋放內存對于像訪問空指針、未初始化指針&#xff08;非法地址&#xff09;&#xff0c;重復釋放內存等內存…

永磁直驅風力發電機結構圖_國內首臺10MW海上永磁直驅風力發電機研制成功

2019首屆新能源產業投融資論壇2019年10月25日周老師&#xff1a;157129595968月21日&#xff0c;具有完全自主知識產權、國內首臺10MW海上永磁直驅風力發電機在東方電氣集團東方電機有限公司研制成功&#xff0c;以此優異成績向新中國成立70周年獻禮。10MW海上永磁直驅風力發電…

struts2官方 中文教程 系列六:表單驗證

先貼個本帖的地址&#xff0c;以免被爬&#xff1a;struts2教程 官方系列六&#xff1a;表單驗證 即 http://www.cnblogs.com/linghaoxinpian/p/6906720.html 下載本章節代碼 介紹 在本教程中&#xff0c;我們將探索使用Struts2來驗證用戶在表單上的輸入。有兩種方法可以來進…

Alictf 2015決賽題目設計和解題思路

解題思路&#xff1a; https://weibo.com/p/1001603836186467681086 設計題目&#xff1a; http://www.cnblogs.com/qsjmobilesec/p/4456090.html

【轉載】 華為榮耀手機如何進入開發者模式

針對手機APP開發人員來說&#xff0c;很多時候開發手機APP應用的時候&#xff0c;需要進入手機的開發者模式中對程序進行調試等操作&#xff0c;此文將介紹華為榮耀手機如何進入開發者模式&#xff0c;以華為榮耀V9手機為例&#xff0c;華為榮耀V10、榮耀V20、華為P20、華為P30…

c++ dll 類使用_在.Net Core 中使用鉤子

目錄前言什么是鉤子使用鉤子3. 掛載多個鉤子4. 在鉤子中加載額外的程序集5. 在 Asp.Net Web Api 項目中使用鉤子結束語演示代碼下載前言Host startup hook&#xff0c;是2.2中提供的一項新的功能&#xff0c;通過使用主機啟動鉤子&#xff0c;允許開發人員在不修改代碼的情況下…