zoukankan      html  css  js  c++  java
  • Docker的安装及部署镜像到镜像仓库

    Docker 笔记

    注意

    替换国内内网源:https://blog.csdn.net/otmqixi/article/details/81564515

    docker 和 docker-compose 常用命令

    # 查看当前镜像
    docker images
    # 查看当前运行镜像
    docker ps
    # 启动停止重启docker
    systemctl start/stop/restart docker
    
    
    # compose 启动等操作
    docker-compose stop/start
    

    docker 及 docker-compose 及 harbor 安装

    安装docker

    在线安装

    yum install docker
    systemctl start docker
    

    离线安装

    官网下载docker安装包,上传到服务器后解压到/usr/bin目录

    # 解压
    tar -zxvf docker-18.06.1-ce.tgz
    # 复制到/usr/bin
    cp docker/* /usr/bin/
    # 将docker注册为服务
    vim /etc/systemd/system/docker.service
    # 编辑
    [Unit]
    
    Description=Docker Application Container Engine
    
    Documentation=https://docs.docker.com
    
    After=network-online.target firewalld.service
    
    Wants=network-online.target
    
    [Service]
    
    Type=notify
    
    # the default is not to use systemd for cgroups because the delegate issues still
    
    # exists and systemd currently does not support the cgroup feature set required
    
    # for containers run by docker
    
    ExecStart=/usr/bin/dockerd
    
    ExecReload=/bin/kill -s HUP $MAINPID
    
    # Having non-zero Limit*s causes performance problems due to accounting overhead
    
    # in the kernel. We recommend using cgroups to do container-local accounting.
    
    LimitNOFILE=infinity
    
    LimitNPROC=infinity
    
    LimitCORE=infinity
    
    # Uncomment TasksMax if your systemd version supports it.
    
    # Only systemd 226 and above support this version.
    
    #TasksMax=infinity
    
    TimeoutStartSec=0
    
    # set delegate yes so that systemd does not reset the cgroups of docker containers
    
    Delegate=yes
    
    # kill only the docker process, not all processes in the cgroup
    
    KillMode=process
    
    # restart the docker process if it exits prematurely
    
    Restart=on-failure
    
    StartLimitBurst=3
    
    StartLimitInterval=60s
    
     
    
    [Install]
    
    WantedBy=multi-user.target
    

    保存文件

    # 添加权限
    chmod -x /etc/systemd/system/docker.service
    # 重新加载配置文件
    systemctl daemon-reload
    # 启动
    systemctl start docker
    # 设置开机启动
    systemctl enable docker.service
    # 查看docker状态
    systemctl status docker
    # 查看版本
    docker -v
    

    安装docker-compose

    # 添加EPEL源
    yum install -y epel-release
    # 安装python-pip
    yum install -y python-pip
    # 安装docker-compose
    pip install docker-compose
    # 更新
    pip install --upgrade pip
    # 验证是否安装成功
    docker-compose -version
    
    # 报错出现python版本问题:
    sudo pip install pyrsistent==0.16.1
    
    https://blog.csdn.net/liuyunshengsir/article/details/79136379
    

    Harbor 安装

    注意:在devops中利用jeckins流水线打包镜像到harbor上,需要对jenkins的服务器安装docker环境,并保证能用docker login 命令登陆到harbor上

    1.8 版本安装

    环境要求:

    ​ 安装包:docker-18.06.1-ce.tgz格式

    ​ docker -version:12.03.0-ce +

    ​ docker-compos: 1.18.0 +

    安装:

    ​ 官网下载压缩包,offline版本

    ​ 下载好上传到服务器目标目录,解压文件(tar -zxvf)

    ​ 进入目录 可以看到 harbor.yml文件编辑该文件

    ​ 基础配置只修改一下host和data_volume就可以,如需要加密则开启https配置(注意不要改http的端口否则会打不开页面)

    mkdir /opt/application/harbor
    

    ​ 保存文件后执行 默认用户名密码 admin Harbor12345

    ./prepare
    
    ./install
    
    docker-compose ps
    
    docker-compose start
    
    docker-compose stop
    

    1.8登陆密码修改

    2.0 版本安装

    环境要求:

    ​ docker -vsersion: 18.09.9

    ​ docker-compose:1.26.2

    安装:

    ​ 官网下载2.0版本的介质包,上传服务器目标目录,解压

    ​ 备份harbor.yml文件,并修改该文件中的hostname,并必须配置https,不配置无法登陆,这是2.0的要求。其他和1.8一样

    ​ 保存文件后使用命令 ./install 运行

    Dockerfile 打包镜像文件

    以test.jar为例,创建一个dockerfile文件,vim Dockerfile ,记得要把目标jar与dockerfile放到同一目录下

    FROM java:8
    
    MAINTAINER wangcr
    
    ADD test.jar localtest.jar
    
    EXPOSE 8085
    
    ENTRYPOINT ["java","-jar","/localtest.jar"]
    

    在文件中输入如上配置,来打包镜像,保存后,来进行编译镜像

    docker build -t wangcr/test . 
    # 后面的这个"."就是当前目录下的Dockerfile文件
    

    打包好后查看当前所有镜像 docker images 可以看到我们编译好的镜像文件。

    下面来运行该镜像

    docker run -d --name test -p 8085:8085 wangcr/test
    

    运行成功会返回一串uuid,然后我们来查看当前容器的状态: docker ps

    docekr打包好镜像上传到harbor

    本地镜像打标签

    docker tag wangcr/test 47.102.222.230/paas/wangcr/test:v1.0
    //wangcr/test 是本地镜像  后面是私有仓库的地址/项目名称/镜像名称:版本号
    

    利用docker images 来查看当前打了标签的镜像

    登陆内部镜像仓库

    docker login 47.102.222.230
    如果登陆http而提示https拒绝连接的话可以先配置一下(CentOs 系统)
    https://www.cnblogs.com/mjiu/p/10304142.html
    vim /etc/docker/daemon.json
    {"insecure-registries":["http://47.102.222.230"]}
    并运行命令重新加载
    systemctl daemon-reload
    systemctl restart docker
    依旧不行(2.0版本)
    就配置https ,利用openssl模块生成带ip地址的密钥证书,进行配置
    harbor 使用登陆时https问题
    https://blog.csdn.net/zsd498537806/article/details/79290732
    

    上传镜像

    docker push 47.102.222.230/paas/wangcr/test
    // 注意不需要加http
    
  • 相关阅读:
    使用 python 实现 memcached 的启动服务脚本 rc
    iNeedle系统之国舜项目
    CentOS系统在不重启的情况下为虚拟机添加新硬盘
    Windows下常用软件工具的命令
    dpdk在虚拟机上出错处理
    Linux工具之man手册彩色页设置
    使用VIM插件ctags来阅读C代码
    Linux命令行上传文件到百度网盘
    ng-repeat 的重复问题
    python 启动简单web服务器
  • 原文地址:https://www.cnblogs.com/wangcr/p/13839215.html
Copyright © 2011-2022 走看看