`
hanqunfeng
  • 浏览: 1542572 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

docker学习笔记之六:使用阿里云镜像仓库加速以及启用远程访问

阅读更多

一、镜像加速

1)注册个帐号

https://dev.aliyun.com/search.html

阿里云会自动为用户分配一个镜像加速器的地址,登录后进入"管理中心"-->"加速器",里面有分配给你的镜像加速器的地址以及各个环境的使用说明。

镜像加速器地址:https://xxxxx.mirror.aliyuncs.com

 

2)在docker主机上执行如下命令

# 系统要求 CentOS 7 以上,Docker 1.9 以上。

       

sudo cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service
sudo sed -i "s|ExecStart=/usr/bin/docker-current daemon|ExecStart=/usr/bin/docker-current daemon --registry-mirror=https://xxxxx.mirror.aliyuncs.com|g" /etc/systemd/system/docker.service
sudo systemctl daemon-reload
sudo service docker restart

 

说明:这里要注意查看/etc/systemd/system/docker.service文件中docker的启动命令,我安装的是docker1.10版本,启动命令是/usr/bin/docker-current ,所以执行第二条sed命令时要使用docker-current。

 

3)下载镜像时正常pull即可,比如:docker pull centos,docker会使用阿里云镜像进行加速。

 

 

二、启用远程访问

参考资料:http://blog.csdn.net/wangtaoking1/article/details/44494847

 

1)增加远程访问配置

sudo vi /etc/sysconfig/docker-network

# /etc/sysconfig/docker-network
DOCKER_NETWORK_OPTIONS="-H unix:///var/run/docker.sock -H 0.0.0.0:2375"

 

 

 

 2)重启docker

sudo systemctl daemon-reload

sudo service docker restart

 

3)防火墙开放2375端口

 

4)说明:查看/etc/systemd/system/docker.service可以发现:

启动docker服务的命令为:

ExecStart=/usr/bin/docker-current daemon --registry-mirror=https://xxxx.mirror.aliyuncs.com \
          --exec-opt native.cgroupdriver=systemd \
          $OPTIONS \
          $DOCKER_STORAGE_OPTIONS \
          $DOCKER_NETWORK_OPTIONS \
          $ADD_REGISTRY \
          $BLOCK_REGISTRY \
          $INSECURE_REGISTRY

 

 

后面跟的$参数都是配置在如下文件中的:

EnvironmentFile=-/etc/sysconfig/docker
EnvironmentFile=-/etc/sysconfig/docker-storage
EnvironmentFile=-/etc/sysconfig/docker-network

 

 

开启远程访问的参数一般为$DOCKER_NETWORK_OPTIONS,其配置在/etc/sysconfig/docker-network中,我们也可以自己增加一些参数,然后加到启动命令的后面。

 

5)使用说明:

开启远程访问后,可以在其它docker主机上对该机器进行远程访问,比如查看远程docker主机的镜像:

sudo docker -H 10.211.55.9:2375 images

 

参数说明:

-H 10.211.55.9:2375:远程docker主机的ip地址和端口

 

如果使用maven的话,也可以使用maven插件实现自动部署镜像的功能,比如使用Dockerfile自动构建:

<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>0.2.9</version>
    <configuration>
        <imageName>${project.name}:${project.version}</imageName>
        <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
        <skipDockerBuild>false</skipDockerBuild>
        <dockerHost>http://10.211.55.9:2375</dockerHost>
        <resources>
            <resource>
                <directory>${project.build.directory}</directory>
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
    </configuration>
</plugin>

 

 

说明:
imageName:生成的镜像名称
dockerDirectory:Dockerfile工作目录
skipDockerBuild:不跳过构建,就是执行镜像构建
dockerHost:docker的主机地址
resource:拷贝到Dockerfile工作目录的资源,此处是将生成的jar文件拷贝过去,本例中此处生成的jar文件为config-1.0.0-SNAPSHOT.jar
 
 
Dockerfile:
FROM java:8
VOLUME /tmp
RUN mkdir /app
ADD config-1.0.0-SNAPSHOT.jar /app/app.jar
ADD runboot.sh /app/
RUN bash -c 'touch /app/app.jar'
WORKDIR /app
RUN chmod a+x runboot.sh
EXPOSE 8888
CMD /app/runboot.sh
 
 
runboot.sh:
java -Djava.security.egd=file:/dev/./urandom -jar /app/app.jar
 
说明:
-Djava.security.egd=file:/dev/./urandom:java随机数生成策略,采用非阻塞方式
 
 
执行构建命令:
mvn clean package docker:build -DskipTests
 
mvn clean package docker:build -DskipTests -X :打印debug信息
 

 

0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics