前言
用自己搭建的git服务器创建一个guns.git仓库,把代码上传到git服务器中,
在服务器root用户,把公钥上传到git服务器,同时为root用户授权,这样root用户就可以直接拉取代码了
在/data/www/ git clone git@127.0.0.1:repo/guns.git
Docker概述
-
常用命令
docker run 运行一个container
docker ps 列出运行的container
docker build 创建image
docker pull 从Docker-Hub下载image
docker images 列出已经下载的images
docker rm 删除 container
docker commit 保存改动为新的image
docker cp在host与container拷贝文件
docker rmi 删除image
-
dockfile
FROM 依赖(继承)的image
ADD 相当于cp,把资源复制到容器里,可以依赖于远程资源
ENTRYPOINT 相当于CMD,是一个数组,参数,执行入口
VOLUME 卷
RUN 在容器执行命令
CMD 执行命令
EXPOSE 暴露端口
ENV 设置环境变量
USER 指定用户
MAINTAINER 维护者
WORKDIR 指定路径
volume
运行
1. docker run -d —name nginx /usr/share/nginx/html nginx 启动name为nginx的nginx image
2. docker inspect nginx //获取nginx container的信息
"Mounts": [
{
"Type": "volume",
"Name": "7fd5bc5f4cf838688e39708685071601d892098fb4c8df08aa01819c47c45e7f",
"Source": "/var/lib/docker/volumes/7fd5bc5f4cf838688e39708685071601d892098fb4c8df08aa01819c47c45e7f/_data",
"Destination": "/usr/share/nginx/html",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
]
这个目录(/var/lib/docker/volumes/7fd5bc5f4cf838688e39708685071601d892098fb4c8df08aa01819c47c45e7f/_data",)如果是mac没有该路径,需要screen 路径加上tty linux不需要
3. 直接在nginx里面对index.html进行修改
4. nginx exec -it nginx /bin/bash 进到容器去看(如果容器没有运行 可以通过nginx start #id来运行)
4. 查看得到/usr/share/nginx/html容器里面的文件也被更改
1. docker run -p 8010:80 -d -v $PWD/html:/usr/share/nginx/html/ nginx 外部操作直接影响内部容器
2. docker run -volumes-from 外部变化共享多个容器
responsity仓库
docker-compose 多容器应用
-
安装docker
yum install docker
service docker start
systemctl start docker.service
systemctl enable docker.service
使用Docker中国加速器
vi /etc/docker/daemon.json
#添加后:
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"live-restore": true
}
systemctl restart docker 重启docker
docker version 返回版本信息 正常安装
JDK安装
之前安装了java环境,执行java命令有返回,执行java -version没返回
设置/ect/profile JAVA_HOME 为=/usr/lib/jvm/java8-openjdk
修改之后 source /etc/profile使之生效
java -version有返回
springboot项目设置
- 在pom.xml properties设置镜像名称
<properties>
<docker.image.prefix>springboot</docker.image.prefix>
</properties>
- 添加docker插件
<!-- Docker maven plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<!-- Docker maven plugin -->
- 在目录src/main/docker穿件Dockerfile文件,内容为
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD guns.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
项目打包
mvn clean package -Dmaven.test.skip=true打包,会自动下载依赖,比较耗时(去掉测试类,mvn package测试类会报错)
java -jar /target/guns.jar 运行
mvn clean package -Dmaven.test.skip=true docker:build(mvn package docker:build)构建
构建成功之后docker images 查看已经构建好的镜像
[root@tmlong guns]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
springboot/guns latest 41a2a2259acf 28 minutes ago 183 MB
docker.io/openjdk 8-jdk-alpine a3562aa0b991 3 months ago 105 MB
docker run -p 8090:8090 -t springboot/guns 运行镜像
docker ps 查看正在运行的镜像
ONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6076ae4e407d springboot/guns "java -Djava.secur..." 28 minutes ago Up 28 minutes 0.0.0.0:8090->8090/tcp thirsty_mcnulty
- 可以正常访问了
备注
- centos服务器 root git clone 没有权限,需要ssh-add ~/.ssh/git_root(报Could not open a connection to your authentication agent则 eval
ssh-agent -s
)
2.No chain/target/match by that name,需要重启docker参考地址