zoukankan      html  css  js  c++  java
  • docker使用 docker运行Jenkins docker运行MySQL docker运行mariadb+testlink docker运行selenium 制作镜像

    1、下载

    https://hub.docker.com/editions/community/docker-ce-desktop-windows/

    2、配置国内加速器加速镜像下载

    https://www.cnblogs.com/atuotuo/p/6264800.html

    docker 默认安装位置

    /var/lib/docker

     镜像信息记录:/var/lib/docker/image/overlay2/repositories.json

    镜像位置(每一个序号就是一个镜像):/var/lib/docker/containers 

    3、基本命令

    查看所有镜像:docker images

    查看某个镜像:docker images|grep mysql

    下载指定版本镜像:docker  pull   mysql:5.7

    删除指定版本镜像:docker rmi mysql:5.7

    修改本地tag名称:docker tag mysql:5.7(旧名称) mysqlnew(新)

    压缩:docker save mysql  >  mysql.tar

    解压:docker load mysql  < mysq.tar

    查看当前启动的所有容器:docker ps

    运行容器: docker run --name myjenkins -v /docker-data:/var/lib/docker/data  -p 8989:8080 -d jenkinsci/jenkins   (8989为宿主机端口,8080 容器端口)

    删除正在运行的容器: docker  rm -f myjenkins 

    查看容器日志:docker logs  -f  myjenkins

    登录容器:docker exec -it  myjenkins bash

     运行bash  docker  exec myjenkins ping www.baidu.com

    将容器文件复制到宿主机:docker cp myjenkins:var/jenkins_home/test.txt    .

      

     Jenkins 密码位置 /var/jenkins_home/secrets/initialAdminPassword

    首先进入Jenkins  --》docker exec -it  myjenkins bash

    查看文件  cat /var/jenkins_home/secrets/initialAdminPassword

     运行Jenkins

    下载Jenkins
     docker pull jenkinsci/jenkins
    
    查看是否下载成功
    docker images

    运行
    docker run --name myjenkins -v /docker-data
    /jenkins_home:/var/jenkins_home  -p 8989:8080 -d jenkinsci/jenkins 

    权限问题:https://www.cnblogs.com/ychun/p/14406718.html

    查看正在运行的容器
    docker ps

    关闭
    docker rm -f
    myjenkins
    
    

    运行MySQL

    查看数据库文件存放位置:show global variables like "%datadir%";

    数据库文件默认存放位置:/var/lib/mysql

    下载Jenkins
     docker pull mysql
    
    查看是否下载成功
    docker images
    
    运行    MYSQL_ROOT_PASSWORD不能少,用于设置登录密码
    docker run -d --name some-mysql   -v /docker-data/mysql_home:/var/lib/mysql  -e  MYSQL_ROOT_PASSWORD=123456   -p 8988:3306  -d mysql  
    
    查看正在运行的容器
    docker  ps
    本地连接
    docker exec -it some-mysql bash
    mysql -hlocalhost -uroot -p
    -->输入密码,123456

    远程连接,在本地连接成功的基础之上
    1)添加远程登录用户
    CREATE USER 'newroot'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
    2)赋予用户所有表的权限
    GRANT ALL PRIVILEGES ON *.* TO 'newroot'@'%';
    3)刷新权限
    FLUSH PRIVILEGES;
    关闭
    docker rm -f some-mysql

    mariadb+testlink

    参考文档:https://hub.docker.com/_/mariadb

           testlink:https://hub.docker.com/r/bitnami/testlink

     

    下载
    docker pull bitnami/mariadb
    docker pull bitnami/testlink
    查看
    docker images
    官网:https://hub.docker.com/r/bitnami/testlink
    Step 1:创建一个 network (if it does not exist)
    
     docker network create testlink-network
    Step 2.创建一个 MariaDB 容器  在宿主机容器
    $ docker volume create --name mariadb_data
    $ docker run -d --name mariadb 
      --env ALLOW_EMPTY_PASSWORD=yes 
      --env MARIADB_USER=bn_testlink 
      --env MARIADB_PASSWORD=bitnami 
      --env MARIADB_DATABASE=bitnami_testlink 
      --network testlink-network 
      --volume /docker-data/mariadb:/var/lib/mariadb 
      bitnami/mariadb:latest
    Step 3. Create the TestLink the container with host volumes
    $ docker volume create --name testlink_data
    $ docker run -d --name testlink 
      -p 8987:8080 -p 8444:8443 
      --env ALLOW_EMPTY_PASSWORD=yes 
      --env TESTLINK_DATABASE_USER=bn_testlink 
      --env TESTLINK_DATABASE_PASSWORD=bitnami 
      --env TESTLINK_DATABASE_NAME=bitnami_testlink 
      --network testlink-network 
      --volume /docker-data/testlink:/var/lib/testlink 
      bitnami/testlink:latest

    查看是否启动成功

    docker ps

    如果有容器没有显示,利用docker logs -f xxxx查看启动日志

    报错

     cannot create directory '/bitnami/mariadb/data': Permission denied

     配置正常访问   ip:8987  

    DOCKER-selenium

    https://github.com/seleniumhq/docker-selenium

    下载
    docker pull selenium/hub
    
    启动
    docker run --name=hub -p 8989:4444 -e GRID_TIMEOUT=0 -e GRID_THROW_ON_CAPABILITY_NOT_PRESENT=true -e GRID_NEW_SESSION_WAIT_TIMEOUT=-1 -e GRID_BROWSER_TIMEOUT=15000 -e GRID_TIMEOUT=30000 -e GRID_CLEAN_UP_CYCLE=30000 -d selenium/hub:latest

    节点一

    docker run --name=chrome -p 8988:5900 -e NODE_MAX_INSTANCES=6 -e NODE_MAX_SESSION=6 -e NODE_REGISTER_CYCLE=5000 -e DBUS_SESSION_BUS_ADDRESS=/dev/null -v /dev/shm:/dev/shm --link hub -d selenium/node-chrome:latest

    访问:ip:8989/

     制作镜像

     参考文档;https://docs.docker.com/engine/reference/builder/

     目标:制作centos镜像,启动镜像可以访问本地百度页面

    step1 :创建一个文件夹
    mkdir dockerfile-baidu
    step2:进入文件夹 dockerfile-baidu,创建文件entrypoint.sh,开启一个Python的web服务
    cd  dockerfile-baidu
    vim entrypoin.sh 
    -->进入编辑

    #!/bin/bash
    cd /root/cgi-bin
    python -m SimpleHTTPServer 8080


    step3: 复制百度首页
    curl  http://www.baidu.com > index.html
    step4:在文件夹 dockerfile-baidu,创建文件Dockerfile
    vim  Dockerfile

    -->编辑,创建文件夹 /root/cgi-bin,作为Python的web服务启动文件夹,将启动文件entrypoint.sh复制进文件夹,以及百度首页复制进去,安装一些软件,暴露8080端口,设置容器的入口 /root/cgi-bin/entrypoint.sh

    
    


    from centos:7

    
    

    RUN mkdir /root/cgi-bin

    ADD entrypoint.sh /root/cgi-bin
    ADD index.html /root/cgi-bin

    RUN yum install -y vim gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

    
    


    EXPOSE 8080

    
    

    ENTRYPOINT ["/bin/bash","/root/cgi-bin/entrypoint.sh"]

    
    

    step5 制作镜像

     docker build -t mybaidu:v1 .

     step6查看是否制作成功

    docker images

    step7启动容器

    docker run  --name mybaidu -d -p 8989:8080 -v /docker/baidu:/var -t  mybaidu:v1

    step8 查看启动 log

    docker logs -f mybaidu

    出现下图,代表启动成功

    访问:ip:8989/

    FROM:基础镜像,当前新镜像是基于哪个镜像的
    
    MAINTAINER:镜像维护者的姓名和邮箱地址
    
    RUN:容器构建时需要运行的命令
    
    EXPOSE:当前容器对外暴露出的端口
    
    WORKDIR:指定在创建容器后,终端默认登陆的进来工作目录,一个落脚点
    
    ENV:用来在构建镜像过程中设置环境变量
    
    ADD:将宿主机目录下的文件拷贝进镜像且 ADD 命令会自动处理 URL 和解压 tar 压缩包
    
    COPY:类似 ADD,拷贝文件和目录到镜像中。(COPY src dest 或 COPY ["src","dest"])
    
    VOLUME:容器数据卷,用于数据保存和持久化工作
    
    CMD:指定一个容器启动时要运行的命令,Dockerfile 中可以有多个 CMD 指令,但只有最后一个生效,CMD 会被 docker run 之后的参数替换
    
    ENTRYPOINT:指定一个容器启动时要运行的命令,ENTRYPOINT 的目的和 CMD 一样,都是在指定容器启动程序及参数

     环境变量ENV

    联合文件系统

    https://testerhome.com/topics/9522

    Docker四种网络模式

    https://www.jianshu.com/p/22a7032bb7bd

  • 相关阅读:
    DMA+USART重定义打印接口
    FTP初探
    ESP8266-lua开发
    GPIO常见问题分析
    新装系统简介
    java四个元注解的作用
    Linux常用操作指令
    @Autowired 与@Resource的区别(详细)
    内存溢出的几种原因和解决办法
    什么是NIO2
  • 原文地址:https://www.cnblogs.com/ychun/p/14403588.html
Copyright © 2011-2022 走看看