CentOS 7 中 Docker 的安装
卸载旧版本(如果安装过旧版本的话)
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
#更新 yum
yum -y update
#安装 docker
yum -y install docker
#进入 docker
vi /etc/sysconfig/docker
# 修改 --selinux-enabled=false
# /etc/sysconfig/docker
# Modify these options if you want to change the way the docker daemon runs
OPTIONS='--selinux-enabled=false --log-driver=journald --signature-verification=false'
if [ -z "${DOCKER_CERT_PATH}" ]; then
DOCKER_CERT_PATH=/etc/docker
fi
# :wq 退出保存
# 重新启动 docker
systemctl restart docker
docker version
Client:
Version: 1.13.1
API version: 1.26
Package version: docker-1.13.1-63.git94f4240.el7.centos.x86_64
Go version: go1.9.4
Git commit: 94f4240/1.13.1
Built: Fri May 18 15:44:33 2018
OS/Arch: linux/amd64
Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Package version: docker-1.13.1-63.git94f4240.el7.centos.x86_64
Go version: go1.9.4
Git commit: 94f4240/1.13.1
Built: Fri May 18 15:44:33 2018
OS/Arch: linux/amd64
Experimental: false
开启远程API
# 编辑该文件
vi /etc/sysconfig/docker-network
# /etc/sysconfig/docker-network 找到 DOCKER_NETWORK_OPTIONS, 补全
DOCKER_NETWORK_OPTIONS="-H unix:///var/run/docker.sock -H 0.0.0.0:5555"
#然后重启docker
sudo systemctl daemon-reload
sudo service docker restart
# :wq 强制保存 在使用netstat 查看该端口
netstat -anp|grep 5555
#查看该应用
curl 127.0.0.1:5555/info
~~~
~~~
#关闭防火墙 因为开了防火墙无法访问
#临时关闭
systemctl stop firewalld
#禁止开机启动
systemctl disable firewalld
采用docker方式打包到服务器
1.在pom.xml文件 加入 对应的插件 (ps: docker.image.prefix 是指仓库名称,建议使用dockerhub的名称,否则无法进行提交push到自己的仓库 owenwangwen)
<properties>
<docker.image.prefix>owenwangwen</docker.image.prefix>
</properties>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<!-- docker远程服务器地址 -->
<dockerHost>http://xx.xx.xx.xx:5555</dockerHost>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
采用docker方式打包到服务器
2.在各模块的src/main下面新建docker包 , 在src/main/docker下面新建Dockerfile
Dockerfile 文件
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD user-center.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
注:需要注意的是 (app.jar 是指该工程打包的jar)
解释:
FROM 指向需要创建的容器名称 openjdk:8-jdk-alpine (除了注释之外,必须是第一行写,否则报错)
tag 不写默认取latest,可以认为是版本号
ADD (向容器中添加文件,主机文件,网络文件,文件夹)
VOLUME (指定挂载点,主机其他容器)
RUN (用于修改镜像命令,常用安装库,程序以及配置程序)
ENV (设置容器的环境变量)
CMD (启动容器默认命令)
ENTRYPOINT (与CMD类似,与CMD配合使用)
项目打包成镜像
样例
-
配置docker主机地址
-
docker:build形成镜像上传docker主机
-
docker:build形成镜像过程
-
登录主机查看镜像
-
docker login
-
上传hub.docker
[root@localhost ~]# docker push owenwangwen/eureka-server