docker

docker的安装

docker的中央仓库

  • dockerd的官方仓库
    docker官方仓库
  • 网易蜂巢
    网易仓库
  • daoCloud(推荐使用)
    daoCloud仓库
  • 公司私服
    在下面配置文件中添加配置
    1
    /etc/docker/deamon.json

    docker的安装

  • 安装之前的依赖
    yum -y install yun-utils device-mapper-persistent-data lvm2
  • 配置阿里云镜像
    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 更新并安装Docker-CE
    1
    2
    yum makecache fast
    yum -y install docker-ce
  • 开启Docker服务
    1
    2
    3
       service docker start
    或者
    systemctl start docker
  • 设置开机自启
    1
    systemctl enable docker
  • 测试docker是否安装成功
    1
    docker run hello-world

    docker的基本操作

    docker镜像的基本操作

    • 拉取镜像到本地
      1
      docker pull 镜像名称[:tag (镜像版本)]
    • 查看docker的所有镜像
      1
      docker images
    • 删除本地镜像
      1
      docker rmi 镜像的唯一标识(IMAGE ID)
    • 镜像的导入和导出
    • 导出本地镜像
      1
      docker save -o 导出的路径 镜像的id
    • 加载镜像
      1
      docker load -i 镜像名称
    • 修改docker镜像的名称
      1
      docker tag 镜像的唯一标识 名称:版本号

      docker容器操作

      容器的基本操作

      运行容器

  • 简单操作
    1
    docker run 镜像的id标识/镜像名称:[tag]
  • 常用参数
    1
    docker run -d -p 宿主机端口:docker端口 -–name 容器名称 镜像的标识|镜像名称:[tag]
    -d : 后台运行
    -p : 宿主机端口:docker端口
    –name 容器名称 : 指定容器的名称

    查看正在运行的容器

    • 命令
      1
      2
      3
      docker ps [-q]
      docker ps
      docker ps -a
    • 参数设置
    -a 查看全部容器 包括没有运行的
    -q 只查看容器的标识
    docker ps 查看正在运行的容器

    查看容器的日志

  • 命令
    1
    docker logs -f 容器id
  • 参数
    -f 可以滚动查看日志的最后几行

    进入容器内部

    1
    docker logs -f 容器id

    删除容器

    • 删除指定的容器
      1
      docker rm 容器id
    • 删除全部容器
      1
      docker rm $(docker ps -qa)
    • 停止指定的容器
      1
      docker stop 容器id
    • 停止全部的容器
      1
      docker stop $(docker ps -qa)
    • 删除容器之前必须先停止容器

      启动容器

      1
      docker start 容器id

      容器内部操作

      复制

      1
      Docker cp 文件名称 容器id:容器内部的路径

      查看容器的IP

      1
      docker inspect 容器Id

      docker应用

      docker安装容器

    1. 从daocloud拉取镜像
      1
      daocloud.io/library/mysql:5.7
    2. 运行容器
      1
      docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=110119 --name mysql daocloud.io/library/mysql:5.7
    -d 后台运行
    -p 端口映射
    -e 设置MySQL密码
    –name 设置容器名称

    docker自定义镜像

    1. 创建一个Dockerfile自定义镜像文件,并且指定自定义镜像信息
    • 命令
      1
      2
      from  daocloud.io/library/tomcat:8.5.15-jre8
      copy 项目路径/项目名称 容器路径
    • 文件内容
      from:指定当前自定义镜像依赖环境
      copy:将相对路径下的内容复制到自定义镜像的对应目录
      workdir:指定自定义镜像工作目录
      cmd:需要执行的命令 (在workdir中执行的命令,cmd可以写多个,只以最后一行命令为准)
    1. 将准备好的文件以及相应的文件复制到linux系统中,制作自定义镜像
      1
      docker build -t 镜像名称[:tag] .

      docker数据卷

      简介

      将宿主机的一个目录映射到容器的一个目录
      在宿主机的目录下操作,映射的容器目录中的内容也会跟着变化

      应用

      数据卷基本操作

    • 创建数据卷
      1
      docker volume create 数据卷名称
    • 数据卷默认存放的目录
      1
      /var/lib/docker/volume/数据卷名称/_data
    • 查看数据卷的详细信息
      1
      docker volume inspect 数据卷名称
    • 查看全部的数据卷
      1
      docker volume ls
    • 删除数据卷
      1
      docker volume rm 数据卷名称

      数据卷的应用

    • 映射数据卷的时候,docker会自动创建数据卷
      1
      docker run -v 数据卷名称:容器内路径 镜像ID
    • 指定路径作为数据卷的存放目录
      1
      docker run -v 宿主机路径:容器内路径 镜像ID

      docker-compose

      简介

    • 通过docker-compose编写docker运行时参数
    • 可以批量管理容器
    • 使用docker-compose.yml文件进行配置

      命令

    • 启动管理的容器
      1
      docker-compose up -d
    • 关闭并删除容器
      1
      docker-compose dowm
    • 开启|重启|关闭容器
      1
      docker-compse start|restart|stop
    • 查看docker-compose管理的容器
      1
      docker-compose ps
    • 查看docker-compose日志
      1
      docker-compose logs -f

      下载以及配置

    • 下载docker-compose 去GitHub中搜索docker-compose
      [docker-compose](https://github.com/docker/compose/releases/download/1.24.1/docker-compose-Linux-x86_64)
    • 将下载好的docker-compose拖拽到linux系统中
      使用ssh远程工具实现
    • 修改docker-compose文件名称
      1
      mv  docker-compose-Linux-x86_64 docker/usr/local/docker-compose
    • 将文件修改成可执行文件
      1
      chmod 777 docker-compose
    • 配置环境变量
  • 将docker-compose移动到bin目录下
    1
    mv docker-compose bin
  • 编辑环境变量的配置文件
    1
    2
    vim /etc/profile
    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:/usr/local/bin
  • 重新加载配置文件
    1
    source /etc/profile
    • 测试docker-compose是否生效
      1
      在任意的路径下输入 docker-compose

      编写docker-compose.yml文件

    • 格式
      k-v结构、多个配置信息用换行+缩进的方式实现
    • 示例
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
        version: '3.1'
      services:
      mysql: #服务的名称
      restart: always #代表只要是docker启动,容器就启动
      image: daocloud.io/library/mysql:5.7.4 #指定镜像的路径
      container_name: mysql #指定容器名称
      ports:
      - 3306:3306 #指定端口号的映射
      environment:
      MYSQL_ROOT_PASSWORD: 110119 #指定mysql root用户的密码
      TZ: Asia/shanghai #指定时区
      volumes:
      - /opt/docker_mysql_tomcat/data:/var/lib/mysql #映射数据卷
      tomcat:
      restart: always
      image: daocloud.io/library/tomcat:8.5.15-jre8
      container_name: tomcat
      ports:
      - 8080:8080
      environment:
      TZ: Asia/shanghai
      volumes:
      - /opt/docker_mysql_tomcat/tomcat_webapps:/usr/local/tomcat/webapps
      - /opt/docker_mysql_tomcat/tomcat_logs:/usr/local/tomcat/logs

      与Dockerfile管理自定义镜像

    • 创建docker-compse.yml文件
    • 创建Dockerfile文件
      1
      2
      from daocloud.io/library/tomcat:8.5.15-jre8
      copy jtsys.war /usr/local/tomcat/webapps
    • 启动容器
      1
      docker-compse up -d
      如果自定义镜像存在,则直接运行
      如果自定义镜像不存在,则docker会自动创建自定义镜像
    • 重构容器
      1
      2
      3
      docker-compose build 
      或者
      docker-compose up -d --bulid

CI/CD

吴超 wechat
subscribe to my blog by scanning my public wechat account