zoukankan      html  css  js  c++  java
  • docker安装与使用记录(debian9)

    win10 通过Xshell连接linux机子

    安装

    https://www.runoob.com/docker/debian-docker-install.html
    安装基本参照这个网址,没遇到什么坑

    $ sudo apt-get remove docker docker-engine docker.io containerd runc
    
    $ sudo apt-get update
    
    $ sudo apt-get install 
        apt-transport-https 
        ca-certificates 
        curl 
        gnupg2 
        software-properties-common
    
    $ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
    
    $ sudo apt-key fingerprint 0EBFCD88
    
    $ sudo apt-get install docker-ce docker-ce-cli containerd.io
    

    验证

    $ sudo docker run hello-world
    

    使用

    1.使用国内加速器

    https://www.runoob.com/docker/docker-mirror-acceleration.html
    基本按照这个网址进行设置,但是也遇到坑了,折腾好久

    • 首先新建文件daemon.json文件,因为docker安装默认是没有daemon.json文件。
      ls -a 在/etc/docker路径下,查看文件,确实没有daemon.json文件
      新建文件:touch daemon.json
    • 编辑daemon.json文件
      这里踩了个坑vi daemon.json,一直弹出一个警告Found a swap file by the name ".daemon.json.swp"

      对Linux不熟,查了半天才知道.swp文件是vi编辑器非正常关闭下生成的缓存文件,有这个存在的时候会弹出这个警告,使用命令进行删除即可rm .daemon.json.swp ,再次vi daemon.json编辑即可
    • 在文件中输入以下内容,并保存
    {
      "registry-mirrors": [
        "https://hub-mirror.c.163.com/"
      ]
    }
    
    • 重启服务
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

    2.下载jenkins

    https://hub.docker.com/
    在这里搜索Jenkins(注:需要注册登录)
    https://hub.docker.com/_/jenkins?tab=tags 最后在这里复制想要的版本pull命令
    (更换为国内镜像docker pull jenkinszh/jenkins-zh,不然插件死都下不了 https://blog.csdn.net/loveLifeLoveCoding/article/details/105774844?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
    jenkins中文社区 https://jenkins-zh.cn/
    回到xshell,把命令粘贴,等待下载结束

    3.查看已安装的镜像 docker images


    第1列repository: 镜像目录名称
    第2列tag: 版本号
    第3列IMAGE ID: 镜像的id
    第4列CREATED: 镜像安装的时间
    第5列SIZE:镜像的大小

    4.运行jenkins docker run -d --name myjenkins -p 8081:8080 jenkinszh/jenkins-zh

      -d : 后台运行
      --name :指定别名
      -p :端口映射,把宿主机的8081端口映射到容器的8080端口
      -e :指定环境变量 
    

    5.查看正在运行的镜像 docker ps

    6.查看日志 docker logs -f myjenkins

    日志里有一行
    Please use the following password to proceed to installation:
    下面写的就是Jenkins的登陆密码

    7.打开Jenkins

    • 1.win10打开浏览器输入Linux的ip地址加端口号8081(刚做端口映射的那个端口)
      http://192.168.2.4:8081
    • 2.输入Jenkins的密码(在第6点看到的那个)
    • 3.登陆成功Jenkins
    • 4.直接选择 install suggested plugins ,选择推荐的方式安装
      1. 创建账户或使用admin直接登陆。我这里直接使用admin
      1. 一路保存,最后

    8.保存容器中的数据

    把宿主机上的某个目录挂载在容器中的目录上,容器运行过程需要的数据均保存在宿主机上,如此,即使容器被误删数据依然可以在宿主机上找到
    docker run --name myjenkins -itd --network host -v /home/test/jenkins_data:/var/jenkins_home --env JAVA_OPTS="-Xmx8192m" jenkinszh/jenkins-zh
    -v : 把宿主机的/home/test/jenkins_data挂载到容器的/var/jenkins_home

    9.关闭运行的jenkins,并删除

    docker stop myjenkins
    
    docker rm myjenkins
    

    10.删除镜像
    docker rmi [image]




    docker命令整理

    • 运行Jenkins。
      docker run --name myjenkins -itd --network host -p 8081:8080 -v /home/test/jenkins_data:/var/jenkins_home --env JAVA_OPTS="-Xmx8192m" jenkinszh/jenkins-zh
      参数:
        --name : 指定容器名
        -i  : 以交互模式运行容器,通常与 -t 同时使用
        -t  : 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
        -d  : 以后台的方式运行容器,并返回容器id
        --network  :指定容器的网络连接类型 支持 bridge/host/none/container: 四种类型
        -p :端口映射,把宿主机的8081端口映射到容器的8080端口
        -v :文件挂载,把宿主机的/home/test/jenkins_data挂载到容器的/var/jenkins_home
        --env或 -e : 设置环境变量
    
    • 运行mariadb。
    docker run --name mymariadb 
    -e ALLOW_EMPTY_PASSWORD=yes 
    -e MARIADB_USER=my_user 
    -e MARIADB_PASSWORD=my_password 
    -e MARIADB_DATABASE=my_database 
    -v /home/test/mariadb_data:/bitnami/mariadb
    -p 3306:3306 
    bitnami/mariadb:latest
    

    参数:

    -e ALLOW_EMPTY_PASSWORD=yes 设置环境变量,允许数据库密码为空
    -e MARIADB_USER=my_user   设置环境变量,数据库用户名为my_user
    -e MARIADB_PASSWORD=my_password  设置环境变量,数据库密码为my_password  
    -e MARIADB_DATABASE=bitnami_testlink #初始化数据库时的实例的名字
    
    • 容器交互命令,在容器里面执行一条命令,如果执行的命令时bash,相当于在容器中打开了bash窗口与db交互
      docker exec -it mariadb bash
    • 运行testlink
    docker run -d --name testlink -p 8099:80 -p 444:443 -e ALLOW_EMPTY_PASSWORD=yes -e
    TESTLINK_DATABASE_USER=bn_testlink -e TESTLINK_DATABASE_NAME=bitnami_testlink --link mariadb
    bitnami/testlink:latest
    

    参数:
    --link mariadb 把mariadb注入testlink(把容器mariadb的网络信息以环境变量的形式注入容器testlink

    踩坑记录:

    1. 挂载文件后,执行docker logs -f myjenkins报错
      cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied

      解决方法:
      https://segmentfault.com/a/1190000008618462
      简单来说,就是权限不够,-v /home/test/jenkins_data:/var/jenkins_home 把/var/jenkins_home映射到了宿主机的目录文件/home/test/jenkins_data上,但是宿主机的这个目录权限是给root的。需要改为容器里的jenkins。
      chown -R 1002:1002 /home/test/jenkins_data
      其中1002为当前用户的uid。通过cat /ect/passwd查看,找到当前登陆用户,即可获得uid
      再次执行
      docker run --name myjenkins -d -p 8081:8080 -v /home/test/jenkins_data:/var/jenkins_home jenkinszh/jenkins-zh
      docker logs -f myjenkins
      没有报错。
  • 相关阅读:
    关于JSON可能出现的错误,待更/todo
    mongoose的安装与使用(书签记录) 2017
    HTTP的学习记录3--HTTPS和HTTP
    HTTP的学习记录(二)头部
    HTTP(一)概述
    LeetCode 455. Assign Cookies
    LeetCode 453. Minimum Moves to Equal Array Elements
    LeetCode 448. Find All Numbers Disappeared in an Array
    LeetCode 447. Number of Boomerangs
    LeetCode 416. Partition Equal Subset Sum
  • 原文地址:https://www.cnblogs.com/congyinew/p/12864716.html
Copyright © 2011-2022 走看看