DOCKER windows安装


windows必须是64位的

1.下载程序包

安装包 https://github.com/boot2docker/windows-installer/releases

下载最新版本的:docker-install.exe即可。 
该安装包安装完成后,系统上会多出三个软件:

Oracle VM VirtualBox 
Git 
Boot2Docker for Windows

以上三个默认安装即可。

2. 设置环境变量

 


在命令窗口中,输入ls 如果能找到命令说明环境添加正确。

3. 启动DOCKERT

在命令窗口中,切到docker的安装目录下 

输入sh: 
然后输入start.sh,等待启动 


第一次启动中,如果有新版本会更新,时间比较长。

如果第二次启动,就非常快了。 

4. 分析start.sh

#!/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

下载完毕之后放到目录:

<code><span class="pln">    C</span><span class="pun">:</span><span class="pln">\Users\你</span><span class="pun">的用户名</span><span class="pln">\.boot2docker\boot2docker</span><span class="pun">.</span><span class="pln">iso</span></code>

另外如果我们的物理机内存低于4G,那么跑这个sh可能需要修改一下,设置内存占用大小:

<code><span class="pln">boot2docker start </span><span class="pun">-</span><span class="pln">m</span><span class="pun">=</span><span class="lit">512</span></code>

5. 利用SSH工具管理

在windows命令行进入docker后,不能复制,而且操作也不方便,因此用支持SSH的工具来管理是很好的,比如SECURECRT, PUTTY等,推荐用SECURECRT. 
在命令行下用boot2docker ip 可以查询到IP



boot2docker缺省的用户名是docker,密码是tcuser


登录后的界面: 

6. 下载镜像

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 

6.5 运行

运行:docker run -i -t ubuntu:ubuntu14 /bin/bash


可以开始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,容器一直存在。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐