DOCKER windows安裝
- DOCKER windows安裝
- 1.下載程序包
- 2. 設置環境變量
- 3. 啟動DOCKERT
- 4. 分析start.sh
- 5. 利用SSH工具管理
- 6. 下載鏡像
- 6.1 下載地址
- 6.2 用FTP工具上傳tar包
- 6.3 安裝
- 6.4 查看鏡像
- 6.5 運行
windows必須是64位的
1.下載程序包
安裝包?https://github.com/boot2docker/windows-installer/releases
下載最新版本的:docker-install.exe即可。?
該安裝包安裝完成后,系統上會多出三個軟件:
Oracle VM VirtualBox?
Git?
Boot2Docker for Windows
以上三個默認安裝即可。
3. 啟動DOCKERT
在命令窗口中,切到docker的安裝目錄下?
輸入sh:?
然后輸入start.sh,等待啟動?
第一次啟動中,如果有新版本會更新,時間比較長。
如果第二次啟動,就非常快了。?
#!/bin/bashset -e# clear the MSYS MOTD
clearcd "$(dirname "$BASH_SOURCE")"ISO="$HOME/.boot2docker/boot2docker.iso"if [ ! -e "$ISO" ]; thenecho 'copying initial boot2docker.iso (run "boot2docker.exe download" to update)'mkdir -p "$(dirname "$ISO")"cp ./boot2docker.iso "$ISO"fiecho 'initializing...'
./boot2docker.exe init
echoecho 'starting...'
./boot2docker.exe start
echo./boot2docker.exe ipecho 'connecting...'
./boot2docker.exe ssh
echoechoecho '[Press any key to exit]'read
從內容上看主要是執行,如下語句
boot2docker.exe init
boot2docker.exe start
boot2docker.exe ssh
所有在命令行下執行 sh start.sh 即可
最近貌似docker也被GFW墻了
所以運行start.sh到init時,如果不幸長時間不進入下一步,就說明鏡像被GFW擋住了,手動去github上下載鏡像,地址為:
https://github.com/boot2docker/boot2docker/releases
如果還是無法下載成功,我是好心人,把1.1.2版本的boot2docker.iso鏡像丟到了百度云上:
http://pan.baidu.com/s/1c01qieG
下載完畢之后放到目錄:
另外如果我們的物理機內存低于4G,那么跑這個sh可能需要修改一下,設置內存占用大小:
5. 利用SSH工具管理
在windows命令行進入docker后,不能復制,而且操作也不方便,因此用支持SSH的工具來管理是很好的,比如SECURECRT, PUTTY等,推薦用SECURECRT.?
在命令行下用boot2docker ip 可以查詢到IP
boot2docker缺省的用戶名是docker,密碼是tcuser
登錄后的界面:?
6.1 下載地址
http://download.openvz.org/template/precreated?
選擇下載?ubuntu-14.04-x86_64.tar.gz
或者http://download.csdn.net/detail/hanghangaidoudou/9572334
如果想要其他鏡像,到http://download.openvz.org/template下面找
6.2 用FTP工具上傳tar包
推薦使用:FileZilla?
面臨的問題,可能是FTP會不好用,也不知道因為啥,有的好用有的不好用。這時候,就得想別的著把鏡像下下來。可以在本地啟動一個tomcat或者iis,然后把ubuntu-14.04-x86_64.tar.gz 文件放到對應的文件夾下。比如我在Tomcat的webapps下建立了個yes文件夾,啟動tomcat
wget http://192.168.99.1:8080/yes/ubuntu-14.04-x86_64.tar.gz?
這樣的方式也可以把鏡像文件下載下來
6.3 安裝
命令:cat ubuntu-14.04-x86_64.tar.gz |docker import - ubuntu:ubuntu14?
速度非常快,大概10幾秒就完成了。
6.4 查看鏡像
查看:?docker images?
可以開始DOCKER旅行了。
就拿要做tomcat集群分布式做例子,我們首先面臨的就是,要把Docker容器里的的內容發布出去,不過在我們打ifconfig時候就會發現,
172.17.0.2和192.168.99.100倆網卡,不過在Docker里訪問外網或者192.168.99.1是可以通的。不過在外面訪問172.17.0.2是不通的,這個時候
就有一個參數-p ? 外網端口|內網端口,例子如下:
我們在啟動容器的時候,?docker run ?-i -t ?-d -p 8081:8080 ubuntu:ubuntu14 /bin/bash,這樣內網的8081端口可以通過192.168.99.100:8080這個地址訪問了。而在使用這個命令后,當前并不是停留在里面。所以我們要看下當前運行的進程,利用docker ps命令
docker@default:~$ docker ps
CONTAINER ID ? ? ? ?IMAGE ? ? ? ? ? ? ? COMMAND ? ? ? ? ? ? CREATED ? ? ? ? ? ? STATUS ? ? ? ? ? ? ?PORTS ? ? ? ? ? ? ? ? ? ?NAMES
ce661e237aaa ? ? ? ?5b21e1ea7e54 ? ? ? ?"/bin/bash" ? ? ? ? 5 seconds ago ? ? ? Up 4 seconds ? ? ? ?0.0.0.0:8081->8080/tcp ? hopeful_minsky
b4da9fbb64a6 ? ? ? ?ubuntu:ubuntu14 ? ? "/bin/bash" ? ? ? ? 34 minutes ago ? ? ?Up 34 minutes ? ? ? 0.0.0.0:8080->8080/tcp ? mad_sammet
dd17cb3a0e35 ? ? ? ?ubuntu:ubuntu14 ? ? "/bin/bash" ? ? ? ? About an hour ago ? Up About an hour ? ? ? ? ? ? ? ? ? ? ? ? ? ? angry_kalam
這個時候我們發現這個進程名叫hopeful_minsky
然后我們就用?docker attach hopeful_minsky 就可以進入到容器內部。
而這個時候,容器里的linux是空空如也,啥都沒有,我們要為他安裝JDK,tomcat
wget http://192.168.99.1:8080/yes/apache-tomcat-7.0.52.zip
unzip apache-tomcat-7.0.52.zip
wget http://192.168.99.1:8080/yes/jdk-8u91-linux-x64.gz
tar -xzvf?jdk-8u91-linux-x64.gz
然后進入到 etc/下找到profile
vi /etc/profile,在最后一行后面填寫環境變量
export JAVA_HOME=/tomcat/bin/jdk1.8.0_91/
export JAVA_BIN=/tomcat/bin/jdk1.8.0_91/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
之后就需要到tomcat的bin下,先要chmod 777那兩個熟悉的startup.sh 和catalina.sh文件
chmod 777?startup.sh
chmod 777?catalina.sh
接下來就是啟動tomcat
./startup.sh
這就說明成功了。
之后我們辛辛苦苦搭的tomcat 環境,在exit的那一剎那,全沒了,那咋辦?別著急,這玩意其實也是可以保存生成新的鏡像的
當你對某一個容器做了修改之后(通過在容器中運行某一個命令),可以把對容器的修改保存下來,這樣下次可以從保存后的最新狀態運行該容器。docker中保存狀態的過程稱之為committing,它保存的新舊狀態之間的區別,從而產生一個新的版本。
目標:
首先使用docker ps -l命令獲得安裝完ping命令之后容器的id。然后把這個鏡像保存為learn/ping。
提示:
1. 運行docker commit,可以查看該命令的參數列表。
2. 你需要指定要提交保存容器的ID。(譯者按:通過docker ps -l 命令獲得)
3. 無需拷貝完整的id,通常來講最開始的三至四個字母即可區分。?
這時候在打docker images,你會發現多出來鏡像了
REPOSITORY ? ? ? ? ?TAG ? ? ? ? ? ? ? ? IMAGE ID ? ? ? ? ? ?CREATED ? ? ? ? ? ? SIZE
<none> ? ? ? ? ? ? ?<none> ? ? ? ? ? ? ?5b21e1ea7e54 ? ? ? ?29 minutes ago ? ? ?1.019 GB
<none> ? ? ? ? ? ? ?<none> ? ? ? ? ? ? ?9505c52a1644 ? ? ? ?32 minutes ago ? ? ?1.019 GB
<none> ? ? ? ? ? ? ?<none> ? ? ? ? ? ? ?b9a4bba4aa80 ? ? ? ?About an hour ago ? 1.2 GB
<none> ? ? ? ? ? ? ?<none> ? ? ? ? ? ? ?b46f3ab23a1e ? ? ? ?About an hour ago ? 1.019 GB
<none> ? ? ? ? ? ? ?<none> ? ? ? ? ? ? ?a8ac084c4be4 ? ? ? ?2 hours ago ? ? ? ? 653.7 MB?
ubuntu ? ? ? ? ? ? ?ubuntu14 ? ? ? ? ? ?3c1b6503833a ? ? ? ?27 hours ago ? ? ? ?415.7 MB?
看Created就知道哪個是剛剛建設的了。那不對啊,剛剛起ubuntu的時候,都有tag的,這。。。。none了,咋起。
呵呵,一樣docker run ?-i -t ?-d -p 8081:8080 IMAGEID /bin/bash也一樣啟動,如上面的IMAGEID是5b21e1ea7e54的容器。
docker run ?-i -t ?-d -p 8081:8080 5b21e1ea7e54 /bin/bash多個端口可以用
docker run ?-i -t ?-d -p 8081:8080 -p 23:22 ?5b21e1ea7e54 /bin/bash
如果你用xshell或crt,以這種方式起來的,直接關閉,只要不exit,容器一直存在。