<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[小小工程師的日常筆記]]></title> 
<link>https://xdeath.tw/index.php</link> 
<description><![CDATA[]]></description> 
<language>zh-tw</language> 
<copyright><![CDATA[小小工程師的日常筆記]]></copyright>
<item>
<link>https://xdeath.tw/read.php?68</link>
<title><![CDATA[docker基本指令]]></title> 
<author>admin &lt;tszheng@twnic.net.tw&gt;</author>
<category><![CDATA[Vmware]]></category>
<pubDate>Wed, 26 Jul 2017 08:22:38 +0000</pubDate> 
<guid>https://xdeath.tw/read.php?68</guid> 
<description>
<![CDATA[ 
	docker 是一種輕量級的虛擬機器，優點是輕量，啟動服務極快，比起其他虛擬機器<br/><br/>除了所執行的應用程式以外幾乎不消耗其他的系統資源，打包容易，所以更容易佈署或移轉<br/><br/>首先是安裝docker<br/><br/>===============================================<br/><br/>Centos 6<br/><br/>先用EPEL套件安裝<br/><br/>wget http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm<br/><br/>rpm -ivh epel-release-6-8.noarch.rpm<br/><br/>yum install docker-io<br/><br/>===============================================<br/><br/>Centos 7<br/><br/>yum install docker-io<br/><br/>service docker start<br/><br/>chkconfig docker on<br/><br/>這樣開機後docker就會自動啟動了<br/><br/>=============下載image=======================<br/><br/>要找相關的images檔一種是到官方找https://hub.docker.com<br/><br/>一種是直接搜尋docker search ubuntu<br/><br/>INDEX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DESCRIPTION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STARS&nbsp;&nbsp;&nbsp;&nbsp; OFFICIAL&nbsp;&nbsp; AUTOMATEDdocker.io&nbsp;&nbsp; <br/>docker.io/ubuntu&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ubuntu is a Debian-based Linux operating s...&nbsp;&nbsp; 6321&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[OK]<br/><br/>這表示有一個docker.io/ubuntu的images，至於他的版本呢可能只能到https://hub.docker.com上面看了，如果有找到指令我會再補上<br/><br/>接著我們要把images拉下來<br/><br/>docker pull docker.io/ubuntu:14.04<br/><br/>14.04表示你要拉的版本，如果不加就是latest，就是最後的版本<br/><br/>PS.注意最後的版本不代表最穩定的版本<br/><br/>=============執行image讓他變成容器================<br/><br/>先介紹幾個指令<br/><br/>docker images&nbsp;&nbsp;#查詢本地有什麼images<br/><br/>docker ps&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #查詢本機已經執行了那些容器<br/><br/>#docker images<br/><br/>REPOSITORY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TAG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IMAGE ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CREATED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SIZE<br/>docker.io/nguoianphu/docker-dns&nbsp;&nbsp; 9.10.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4397a4f50afc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;44 minutes ago&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.017 GB<br/>sameersbn/bind&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1de82241fca3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5 hours ago&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 438.7 MB<br/>表示有兩個images，我要將images run起來變成容器<br/><br/>docker run -d -p 53:53/udp&nbsp;&nbsp;docker.io/nguoianphu/docker-dns <br/><br/>參數-d 表示背景執行，53:53/udp表示到本機的udp 53轉到這個容器的udp 53 port上<br/><br/>如果成功執行起來可以用docker ps檢查<br/><br/>#docker ps<br/>CONTAINER ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMAGE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COMMAND&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CREATED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NAMES<br/>13be5fa06309&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;docker.io/nguoianphu/docker-dns:9.10.5&nbsp;&nbsp; "/docker-entrypoint.s"&nbsp;&nbsp; 46 minutes ago&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Up 46 minutes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 53/tcp, 0.0.0.0:53->53/udp&nbsp;&nbsp; grave_kowalevski<br/><br/>記住13be5fa06309這個就是這個容器的ID，當你要停止、儲存現在狀態，都需要這個ID<br/><br/>=============進入容器=========================<br/><br/>docker exec -it 13be5fa06309 bash<br/><br/>其實exec是執行這個容器的命令，因為我要進入這個容器<br/><br/>所以用bash這樣就可以看到一個很小型的安裝好bind的linux主機<br/><br/>你可以vi編輯設定檔，可以用rndc reload重新讀取設定<br/><br/>但是千萬不要關閉服務，一但關閉服務整個docker就會停掉了~_~<br/><br/>另外進入容器後如果出現亂碼，可以在可以設定編碼(ex utf-8<br/><br/>docker exec -it 13be5fa06309 env LANG=C.UTF-8 bash<br/><br/>=============儲存image=========================<br/><br/>當我變更了設定檔，或是編輯了網頁內容之後，請記得關閉docker前要先儲存(不是save，是commit)<br/><br/>docker commit -m '註解/版本x之類的' -a '上傳者' 13be5fa06309 docker.io/nguoianphu/docker-dns<br/><br/>這樣docker images就會多出一個不一樣版本的images<br/><br/>=============匯出=========================<br/><br/>docker save -o bind_9.10.5.tar docker.io/nguoianphu/docker-dns:9.10.5<br/><br/>匯出的檔案，然後images名字:版本<br/><br/>這樣就會匯出成一個tar檔，可以拿到其他有docker的電腦上進行佈署<br/><br/>=============佈署image=========================<br/><br/>docker load --input bind_9.10.5.tar<br/><br/>=============其他==========================<br/><br/>假如你的容器網路不想要經過host層，在run的時候可以使用--net=host這個參數<br/><br/>但是根據我看到的資料，由於這個容器直接使用實體的網路，因此如果這個docker被入侵<br/><br/>是有機會直接反過來入侵你的host OS的<br/><br/>刪除容器<br/><br/>docker rm 容器id<br/><br/>刪除image<br/><br/>docker rmi image<br/><br/>還有一些容器run起來之後再docker ps是看不到的(WHY????)<br/><br/>例如docker run -t -i centos:centos6 bash<br/><br/>你可以進入centos6的bash，但是一但離開這個容器就結束了<br/><br/>因為你已經結束bash，像這種情況就需要讓他執行一個不會停的程式<br/><br/>docker run -d centos ping localhost<br/><br/>或是docker run -d --privileged=true centos /usr/sbin/init<br/><br/>使用特權模式執行<br/><br/>或是docker run -d -restart=always centos<br/><br/>再進入這個容器<br/><br/>docker exec -it id bash
]]>
</description>
</item><item>
<link>https://xdeath.tw/read.php?42</link>
<title><![CDATA[virtual switch 與 vmware網路的容錯]]></title> 
<author>admin &lt;tszheng@twnic.net.tw&gt;</author>
<category><![CDATA[Vmware]]></category>
<pubDate>Thu, 17 Mar 2016 06:55:44 +0000</pubDate> 
<guid>https://xdeath.tw/read.php?42</guid> 
<description>
<![CDATA[ 
	大家都知道vmware是一個最多人使用的虛擬化的工具<br/><br/>一般使用者使用vmware workstation與vmware player的話，網路基本上不難設定<br/><br/>guest os大概就透過兩種模式連上網，NAT與bridge<br/><br/>所以guest os就是使用一個private ip<br/><br/>而bridge模式則是guest os與本機作業系統共用一張網卡出去<br/><br/>所以guest os本身也是使用public ip。<br/><br/>但是ESXI(vsphere)就麻煩多了，畢竟它針對的用戶是企業<br/><br/>他所有的guest os都是掛在虛擬的switch底下進行管理，而vswitch又需要指定相對應的實體網卡<br/><br/>一個ESXI可以有很多個vswitch，但是一張實體網卡只能接在一個vswitch底下<br/><br/>也就是guest os -> vswitch -> 實體網卡 -> internet&nbsp;&nbsp;這樣的架構<br/><br/>使用vsphere client連進去之後點host os，點設定->網路設定->新增網路<br/><br/><a href="https://xdeath.tw/attachment.php?fid=5" target="_blank"><img src="https://xdeath.tw/attachment.php?fid=5" class="insertimage" alt="點擊在新視窗中瀏覽此圖片" title="點擊在新視窗中瀏覽此圖片" border="0"/></a><br/><br/>裡面會有虛擬機器與VMkernel兩種，正常狀況選虛擬機器就可以了<br/><br/>差別在VMKernel本身還有帶一個管理IP，要做HA或是vmotion的時候才需要使用<br/><br/>所以一台ESXI<span style="font-family: 微軟正黑體;"><span style="color: #DC143C;"><span style="font-size: 24px;">至少要有一個VMKernel</span></span></span>(預設第一個就是)，否則無法進行管理文字<br/><br/>接著勾選你要使用哪一張實體網卡，如果你需要做網路線的負載平衡或是網卡備援<br/><br/>就一次多勾幾張網卡，選擇相對應的vlan id，就完成了<br/><br/>假設總共有三個vswitch各接一張實體網卡，實體網卡再接到三個不同的網段<br/><br/>那guest os看是要使用哪一個網段的IP，就在網路卡的網路標籤那邊選擇你要接的是哪一個vswitch<br/><br/><a href="https://xdeath.tw/attachment.php?fid=6" target="_blank"><img src="https://xdeath.tw/attachment.php?fid=6" class="insertimage" alt="點擊在新視窗中瀏覽此圖片" title="點擊在新視窗中瀏覽此圖片" border="0"/></a><br/><br/><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-1292700168892016" data-ad-slot="3191226934" data-ad-format="auto" data-full-width-responsive="true"></ins><script>(adsbygoogle = window.adsbygoogle &#124;&#124; []).push(&#123;&#125;);</script><br/><br/>#======================網路的容錯==================<br/><br/>這邊的容錯並不是指vmware的HA功能，而是單純只網路卡的HA<br/><br/>因為網路卡、網路線、甚至對接的實體switch其實都是有可能故障的<br/><br/>這邊的HA是指當我們接兩條(以上)的網路線時<br/><br/>某一條線的網路不通的時候，ESXI會自動的跳到另外可用的線路上<br/><br/>首先我們點選vswitch -> 內容 -> vswitch -> nic整併<br/><br/><a href="https://xdeath.tw/attachment.php?fid=7" target="_blank"><img src="https://xdeath.tw/attachment.php?fid=7" class="insertimage" alt="點擊在新視窗中瀏覽此圖片" title="點擊在新視窗中瀏覽此圖片" border="0"/></a><br/><br/>下方確認只有一張網路卡在作用中的介面卡區<br/><br/>而其他預備使用的介面卡在待命介面卡區，這樣當使用中的網路卡(線)故障的時候<br/><br/>就會自動切換到其他張網路卡，而不會導致斷線了。
]]>
</description>
</item><item>
<link>https://xdeath.tw/read.php?16</link>
<title><![CDATA[vmware converter]]></title> 
<author>admin &lt;tszheng@twnic.net.tw&gt;</author>
<category><![CDATA[Vmware]]></category>
<pubDate>Fri, 27 Jun 2014 04:19:28 +0000</pubDate> 
<guid>https://xdeath.tw/read.php?16</guid> 
<description>
<![CDATA[ 
	這是一個vmware將實體機器轉成虛擬機器的工具<br/><br/>但是其實不管對象是實體機器還是虛擬機器，我測試幾乎都可以轉過來<br/><br/>首先到VMWARE官網下載VMware vCenter Converter Standalone Client<br/><br/>安裝完畢之後點兩下開啟(Windows 7以上請點右鍵->以系統管理者開啟，否則會失敗)<br/><br/>接著如果沒有DHCP SERVER，就需要準備一個轉換後的IP_B<br/><br/>(實際上轉換的流程是先在ESXI上開啟一個小型的guest os<br/><br/>綁上這個IP_B後，連線到要轉換的機器進行資料轉換)<br/><br/>然後點左上角的Converter machine<br/><br/>第一步是連線到要轉換的實體機器上<br/><br/>第二步是要轉換到該台ESXI<br/><br/>一般如果轉換中間失敗(3%)左右，都是某些port或是權限的問題<br/><br/>要轉虛的機器iptable以及hosts.allow必須開啟讓ESXI以及IP_B的權限<br/><br/>同時將sshd_config中的root登入啟用<br/><br/>接著用VMware vSphere Client連線到ESXI中開啟ssh client的功能<br/><br/>全部開啟後用esxi以及IP_B都能夠SSH到要轉換的機器上<br/><br/>這樣應該就沒問題了。<br/><br/>轉換的source type選擇powered-on machine<br/><br/>這樣要轉換的機器可以在服務不中斷的情況下直接轉換成虛擬機<br/><br/>另外如果是linux的機器，由於會有一些uuid、網路卡或是硬碟掛載的問題<br/><br/>所以最好設定完成後將是否重新進行設定勾選<br/><br/>讓converter協助進行一些系統修改，一般而言這樣轉換後就能直接開啟。<br/><br/>另外如果要轉換的是xen server上的機器，由於xen server是半虛擬化，kernel使用的是xen專用的kernel<br/><br/>這樣轉換後就要用救援光碟進行置換kernel的動作才能夠開得起來了。
]]>
</description>
</item><item>
<link>https://xdeath.tw/read.php?13</link>
<title><![CDATA[Vmware中複製linux主機網路無法連線問題]]></title> 
<author>admin &lt;tszheng@twnic.net.tw&gt;</author>
<category><![CDATA[Vmware]]></category>
<pubDate>Mon, 16 Jun 2014 04:15:53 +0000</pubDate> 
<guid>https://xdeath.tw/read.php?13</guid> 
<description>
<![CDATA[ 
	要啟動eth時產生錯誤訊息為no device found for connection (System ethx)<br/><br/>有兩種情況可能產生這樣的錯誤，<br/><br/>1.由於是複製一個新的linux,網卡會自動產生一組新的mac導致<br/><br/>/etc/sysconfig/network-scripts/ifcfg-eth0 的mac錯誤。<br/><br/>2./etc/udev/rules.d/70-persistent-net.rules中的mac錯誤<br/><br/>首先先將/etc/udev/rules.d/70-persistent-net.rules刪除，將系統重開機，讓系統自己去抓mac位置以及網路卡的編號<br/><br/>(有可能原本網路卡編號是eth0，因為衝突的關係變成eth1)<br/><br/>重開機之後記下/etc/udev/rules.d/70-persistent-net.rules檔案中的網路卡編號以及MAC位址，接著再到<br/><br/>/etc/sysconfig/network-scripts/ifcfg-eth中去修改MAC以及ip資訊，接著再重開機<br/><br/>一般而言經過這個流程可以解決九成的網路問題。
]]>
</description>
</item><item>
<link>https://xdeath.tw/read.php?6</link>
<title><![CDATA[ESXI的一些常用cmd line]]></title> 
<author>admin &lt;tszheng@twnic.net.tw&gt;</author>
<category><![CDATA[Vmware]]></category>
<pubDate>Mon, 07 Apr 2014 07:13:42 +0000</pubDate> 
<guid>https://xdeath.tw/read.php?6</guid> 
<description>
<![CDATA[ 
	vim-cmd vmsvc/getallvms&nbsp;&nbsp;列出guest os資料<br/>vim-cmd vmsvc/power.on <vmid> 將第X台guest os開機<br/>esxcli vm process list&nbsp;&nbsp; 列出執行中guest os 資訊<br/>esxcli vm process list &#124; grep "World ID" &#124; awk '&#123;print $3&#125;'&nbsp;&nbsp;列出執行中guest os world id 資訊<br/>esxcli vm process kill --type=[soft,hard,force] --world-id=[WorldID]&nbsp;&nbsp; 關機<br/>vmd-cmd vmsvc/power.off <vmid> 將第x台guest關機<br/>vim-cmd vmsvc/get.summary&nbsp;&nbsp;<vmid>&nbsp;&nbsp;- 取得guest OS系統設定<br/>vim-cmd vmsvc/snapshot.revert <vmid> <snapshot> 還原至某個snap<br/>vim-cmd vmsvc/snapshot.create <vmid> <snapshot> <描述> 製作snap<br/>vmkfstools -i /vmfs/volumes/datastore1/source/xp.vmdk&nbsp;&nbsp;-d thin /vmfs/volumes/datastore1/destination/TARGET.vmdk&nbsp;&nbsp;轉換vmdk格式<br/>vmkfstools -X /vmfs/volumes/Storage1/source/source.vmdk 20G&nbsp;&nbsp; 修正硬碟大小&nbsp;&nbsp;#不可有snapshot<br/>vim-cmd solo/registervm&nbsp;&nbsp;<完整vmdk path> <名稱>&nbsp;&nbsp; 註冊vm<br/>vmkfstools -j [來源檔案]&nbsp;&nbsp; thin -> thick<br/>ovftool --datastore=<target datastore name> ./<source ova> vi://<username>:<passwd>@<esxi host>&nbsp;&nbsp; 佈署<br/>ovftool vi://root:passwd@ip/<guest os>/ ./xp.voa&nbsp;&nbsp; VM轉成template<br/><br/>ovftool "--datastore=datastore1" "--network=VM-Network" "<source>/VM.ova" "vi://username:password@vCenterIP/DataCenter_Name/host/Cluster_Name/hostIP"<br/><br/>vim-cmd vmsvc/get.summary vmId &#124; grep ipAddress<br/>/sbin/ <service> restart&nbsp;&nbsp; 服務重啟<br/>vmkfstools -c 40960M xp.vmdk -d thin&nbsp;&nbsp; 新增硬碟<br/>vim-cmd vmsvc/unregister&nbsp;&nbsp;<vmid>&nbsp;&nbsp;- unregister a VM from a host<br/>vim-cmd vmsvc/tools.install vmid 指定特定vmid之VM進行Vmware tool的安裝<br/>vim-cmd hostsvc/net/info&nbsp;&nbsp; 提供Hypervisor網路相關資訊<br/>esxcfg-nics -l&nbsp;&nbsp; 列出ESX Host網卡資料，以及設定。<br/>esxcfg-vswitch -l&nbsp;&nbsp; 列出虛擬Swith資訊，以及其設定。<br/><br/><br/><br/>vmx相關參數<br/>displayName&nbsp;&nbsp; 顯示的名稱<br/>ide0:0.present = "TRUE"&nbsp;&nbsp; 硬碟配置<br/>ide0:0.fileName = "xp.vmdk"<br/>virtualHW.version = "8"&nbsp;&nbsp; vm版本<br/>memsize = "2048"&nbsp;&nbsp; 記憶體<br/>numvcpus = "4"&nbsp;&nbsp; 總core數<br/>cpuid.coresPerSocket = "2"&nbsp;&nbsp; 每個socket的core數
]]>
</description>
</item>
</channel>
</rss>