Docker安装与配置

离线安装:

  1. 下载安装包:https://get.daocloud.io/docker-offline/docker-1.13.0-centos-7.2.1511.tar.gz

  2. 解压并安装

    $ tar -zxvf docker-1.13.0-centos-7.2.1511.tar.gz
    $ cd docker-1.13.0-centos-7.2.1511
    $ bash install.sh
  3. 配置docker

    $ curl -sSL https://get.daocloud.io/docker | sh
    $ chkconfig docker on
    $ setenforce 0 && sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config
    $ systemctl stop firewalld
    $ systemctl disable firewalld.service
    $ service docker restart

常用命令:

## 查看当前运行的容器
docker ps
## 查看全部容器
docker ps -a
## 查看全部容器的id和信息
docker ps -a -q
## 查看全部容器占用的空间
docker ps -as

## 登录镜像中心
docker login --username=[userName] --password=[pwd] [registryURL]
## 提交容器
docker tag [imageID] [remoteURL]:[imageTag]
docker push [remoteURL]:[imageTag]
## 拉取提交的容器
docker pull [remoteURL]:[imageTag]

## z
docker build -t [remoteURL]:[imageTag] .

## 运行容器
docker run -d -p [端口] -v [宿主机目录]:[容器目录] [remoteURL]:[imageTag]

## 进入容器
docker exec -it [容器id] /bin/bash

## 删除一个容器
docker rm [容器id]
## 启动、停止、重启容器
docker start|stop|restart [id]

## 清理容器
docker system prune

Harbor镜像仓库

前置环境准备

  1. 安装与启动docker

  2. 安装Docker-compose

    ## 下载
    $ curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    ## 赋予执行权限
    $ chmod +x /usr/local/bin/docker-compose
    ## 测试是否安装成功
    $ docker-compose --version

安装Harbor

  1. 下载安装包:https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-online-installer-v1.1.2.tgz

  2. 解压,修改配置文件harbor.cfg

    # hostname设置访问地址,可以使用ip、域名,不可以设置为127.0.0.1或localhost
    hostname = 192.168.28.128
    
    # 启动Harbor后,管理员UI登录的密码,默认是Harbor12345
    harbor_admin_password = 123456
  3. 启动

    $ ./install.sh 
  4. 访问hostname:80地址

使用

  1. 登录仓库

    # 找到docker.service文件的位置
    $ find / -name docker.service -type f
    # 修改docker.service文件,在ExecStart之后添加 --insecure-registry=http://192.168.28.128
    
    # 登录仓库
    $ docker login 192.168.28.128
  2. push到仓库

    ## 提交容器
    $ docker tag [imageID] [remoteURL]:[imageTag]
    $ docker push [remoteURL]:[imageTag]
  3. pull到本地

    ## 拉取提交的容器
    $ docker pull [remoteURL]:[imageTag]

Docker镜像制作

JDK环境镜像制作

#1.指定基础镜像,并且必须是第一条指令
FROM centos:7

#2.指明该镜像的作者
MAINTAINER hzj

#3.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录
WORKDIR /usr/local/jdk

#4.复制JDK文件
ADD jdk-8u212-linux-x64.tar.gz /usr/local/jdk

#5.配置环境变量
ENV JAVA_HOME=/usr/local/jdk/jdk1.8.0_212
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH

NACOS+REDIS环境镜像制作

#1.指定基础镜像,并且必须是第一条指令
FROM soa:1.0

#2.指明该镜像的作者
MAINTAINER hzj

#3.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录
WORKDIR /usr/local/redis

#4.复制nacos与redis以及配置文件
ADD redis-6.2.4 /usr/local/redis
ADD nacos /usr/local/nacos
ADD start.sh /usr/local/redis
COPY redis.conf /usr/local/redis
RUN chmod +x /usr/local/redis/start.sh

#5.容器运行时执行启动脚本
CMD ["/usr/local/redis/start.sh"]

redis.conf修改(远程访问):

protected-mode no #修改为no

#bind 127.0.0.1 -::1 #注释掉

start.sh文件,启动nacos和redis:

#!/bin/bash

sh ../nacos/bin/startup.sh ./src/redis-server redis.conf

服务镜像制作

#1.指定基础镜像,并且必须是第一条指令
FROM centos:7

#2.指明该镜像的作者
MAINTAINER hzj

#3.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录
WORKDIR /usr/local/pcmc
ENV JAVA_HOME="/usr/local/jdk1.8.0_212"
ENV PATH="${PATH}:${JAVA_HOME}/bin:${JAVA_HOME}/sbin"

#4.复制文件,解压,覆盖配置文件
COPY pcmc-boot-2.2.1-bin.tar.gz /usr/local/pcmc
RUN tar xzvf pcmc-boot-2.2.1-bin.tar.gz
RUN mkdir pcmc-boot-2.2.1/logs
RUN touch pcmc-boot-2.2.1/logs/default.log
COPY log4j2.xml /usr/local/pcmc/pcmc-boot-2.2.1/conf
COPY application-prd.yml /usr/local/pcmc/pcmc-boot-2.2.1/conf
COPY start.sh .
RUN chmod +x /usr/local/pcmc/start.sh

#5.启动服务
CMD ["/usr/local/pcmc/start.sh"]

nacos配置需要指定服务注册IP为宿主机的IP

start.sh文件,启动服务:

#!/bin/bash

sh pcmc-boot-2.2.1/bin/startup.sh : >> pcmc-boot-2.2.1/logs/default.log && tail -f pcmc-boot-2.2.1/logs/default.log