windows必须是64位的
安装包 https://github.com/boot2docker/windows-installer/releases
下载最新版本的:docker-install.exe即可。
该安装包安装完成后,系统上会多出三个软件:
Oracle VM VirtualBox
Git
Boot2Docker for Windows
以上三个默认安装即可。
#!/bin/bashset -e
# clear the MSYS MOTD
clear
cd "$(dirname "$BASH_SOURCE")"
ISO="$HOME/.boot2docker/boot2docker.iso"
if [ ! -e "$ISO" ]; then
echo 'copying initial boot2docker.iso (run "boot2docker.exe download" to update)'
mkdir -p "$(dirname "$ISO")"
cp ./boot2docker.iso "$ISO"fi
echo 'initializing...'
./boot2docker.exe init
echo
echo 'starting...'
./boot2docker.exe start
echo
./boot2docker.exe ip
echo 'connecting...'
./boot2docker.exe ssh
echo
echoecho '[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
下载完毕之后放到目录:
C:\Users\你的用户名\.boot2docker\boot2docker.iso
另外如果我们的物理机内存低于4G,那么跑这个sh可能需要修改一下,设置内存占用大小:
boot2docker start -m=512
在windows命令行进入docker后,不能复制,而且操作也不方便,因此用支持SSH的工具来管理是很好的,比如SECURECRT, PUTTY等,推荐用SECURECRT.
在命令行下用boot2docker ip 可以查询到IP
boot2docker缺省的用户名是docker,密码是tcuser
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下面找
面临的问题,可能是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
这样的方式也可以把镜像文件下载下来
命令:cat ubuntu-14.04-x86_64.tar.gz |docker import - ubuntu:ubuntu14
速度非常快,大概10几秒就完成了。
可以开始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
这就说明成功了。
之后我们辛辛苦苦搭的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
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,容器一直存在。