让你简单几步改造应用支持docker部署

docker配置使用

服务器安装docker服务步骤(CentOS 7)需要Root账号或者有sudo权限

  1. 安装依赖
sudo yum install -y yum-utils \
 device-mapper-persistent-data \
 lvm2
  1. 设置稳定的仓库
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
  1. 安装最新版本的docker
 sudo yum install docker-ce docker-ce-cli containerd.io
 若需要安装指定版本的docker
 sudo yum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.io
  1. 安装完成后,启动docker
sudo systemctl start docker
  1. 停止服务
sudo systemctl stop docker
  1. 重启服务
sudo systemctl restart docker
  1. 加入自启动
sudo systemctl enable docker
  1. 取消自启动
sudo systemctl disable docker
  1. 增加docker国内镜像

在/etc/docker目录下 若存在daemon.json,就修改,若不存在,进行创建,内容为
{“registry-mirrors”:[“https://reg-mirror.qiniu.com/”,“https://hub-mirror.c.163.com/”]}

  1. 重启docker
加载镜像加速
sudo systemctl daemon-reload
重启服务
sudo systemctl restart docker
  1. 配置docker 开放端口给其他地址访问
sudo vi /usr/lib/systemd/system/docker.service
然后修改里面的ExecStart
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
增加 -H tcp://0.0.0.0:2375(端口号可自定义)
  1. 重启docker
sudo systemctl restart docker

镜像常用命令

  • 查看所有镜像
docker images -a
  • 显示虚拟镜像(tag为none)的镜像ID
docker images -q -f dangling=true  
  • 删除所有tag为none的镜像
docker images -q -f dangling=true | xargs docker rmi -f 

容器常用命令

  • 新建容器
docker run -itd -p 本地端口:容器端口 --name 容器名称 镜像名称/镜像ID
  • 获取容器ID
docker ps -a | grep 容器名  取第一列
docker ps -q  -f "name=容器名" 直接获取容器ID
  • 查看容器日志
docker logs -f --tail 200 容器ID
  • 进入容器
docker exec -it 容器ID /bin/bash
  • 退出容器
exit
  • 重启容器
docker restart 容器ID
  • 启动容器
docker start 容器ID
  • 暂停容器
docker stop 容器ID
  • 删除容器
docker rm 容器ID (若需强制删除 增加-f参数)

maven配置maven-docker-plugins插件

  • pom.xml增加如下配置

                com.spotify
                docker-maven-plugin
                1.0.0
                
                
                    
                        default
                        package
                        
                            build
                            push
                        
                    
                
                
                   
                    docker-aliyun
                    
                    ${docker-repository}
                    ${docker-repository}/${docker.registry.name}/${project.name}:${project.version}
                    
                   
                    
                        ${project.version}
                    
                    
                   ${project.basedir}/src/main/docker/
                    http://101.103.156.253:2375
                    
                    
                        ${project.build.finalName}.jar
                        101+default+application.properties
                    
                    
                    
                        
                            /
                            
                            ${project.build.directory}
                            ${project.build.finalName}.jar
                            101+default+application.properties
                        
                    
                    true
                
            
  • setting.xml配置

     
      docker-aliyun
      
      xxx
      
      {SSHj8AYxgp0HaD6Zj86FOtpyBTmshzgk4nxbT3sYK1Y=}
      
        [email protected]
      
    
  • 增加settings-security.xml(放在.m2目录下)


  {LysllZS6hQsHHrcLKMHhhiDkgXQPbVvB/C1jSErrsd8=}

  • Dockfile
FROM java:8
ARG JAR_FILE
ARG CONFIG_FILE
WORKDIR /opt/work/
ADD $JAR_FILE xxx.jar
ENTRYPOINT ["sh","-c","java  -jar xxx.jar"]
  • 根据明文生成master密码
mvn --encrypt-master-password  "YourNEXUSPassword"
  • 加密密码
mvn --encrypt-password  "YourNEXUSPassword"

注意:

  1. 若需要其他用户操作docker,需把用户添加到docker组别里
    sudo usermod -aG docker ${USER}
    sudo systemctl restart docker
  2. 开发本地需要配置环境变量
    配置 DOCKER_HOST=tcp://dockerIp:port
  3. 在使用maven-docker-plugin时,镜像名称只允许小写字母或者数字
  4. 尽量不要直接修改容器 然后生成镜像,严格使用dockfile的

你可能感兴趣的:(docker,java,docker,spring,boot,maven)