• Docker学习笔记二


    一.在linux上安装docker

     1 sudo apt update
     2 sudo apt install docker.io
     3 sudo apt install curl
     4 sudo curl -fsSL get.docker.com -o get-docker.sh
     5 sudo sh get-docker.sh --mirror Aliyun
     6 sudo systemctl enable docker
     7 sudo systemctl start docker 
     8 sudo groupadd docker               
     9 sudo usermod -aG docker $USER 
    10 
    11 # 接下来要重新登陆Ubuntu,终端输入docker info
    12 # 出现containers 、server信息说明安装成功
    13 
    14 # 接下来配置国内镜像加速
    15 # 在/etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
    16 
    17 {
    18      "registry-mirrors": 
    19        [ "https://registry.docker-cn.com" ]
    20  }
    21      
    22 # 重新启动服务
    23 sudo systemctl daemon-reload
    24 sudo systemctl restart docker
    25 
    26 #安装成功

    二.写Dockerfile

    菜鸟教程定义为:Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明

    形如

     的文件

    由指令(大写) + 内容构成

    常用的指令有:

    FROM:

      基础镜像,即所需要的背景环境

      eg:FROM ubuntu18.04             #基于ubuntu18.04的环境中执行后续操作

      eg:FROM nginx                         #基于nginx做后续的操作

     RUN:

      执行其后的命令行指令(无需加sudo)

      eg:RUN apt update

      注意:1.如果是执行过程中会询问 [Y/N] 这样的指令,那么在写RUN指令的时候可以写成    RUN echo y | apt update  这样的形式

           2.如果是需要连续执行多条指令,不要写成:

          RUN XXXXXXX

          RUN XXXX

          RUN XXXXX

          ......

          这样的形式

          会造成镜像膨胀过大

          应写成

          RUN XXXXXXX &&

          RUN XXXX &&

          RUN XXXX &&

             apt clean 

    CMD:

      用于运行程序,但与RUN不同

      CMD是在Docker run时运行

      RUN是在Docker build时运行

      CMD指定的程序运行结束,容器也就结束,CMD指令指定的程序可被docker run命令行参数中指定要运行的程序所覆盖,且如果Dockerfile中存在多个CMD指令,仅最后一个生效

      eg:CMD <shell 命令>

        CMD <"可执行文件或命令","param1","param2"......>

    三.build Dockerfile tobe image

    这一步之前可以先去docker hub创建一个账户,用于以后上传保存仓库

    写好Dockerfile之后,需要build才能成功建立所需环境

    使用:

    $  docker build -t ruiruirui/repository的名字:tag的名字 -f dockerfile的名字 .

     当出现:

    Successfully build xxxxxxx

    Successfully tagged ruiruirui/repository的名字:tag的名字

    时,说明build成功了

    附:

    查看有哪些docker image

    docker image ls

    查看有哪些docker 容器及状态

    docker ps -a

    一.

    把本地docker镜像文件推到hub上的方法是:

    先在终端输入 docker login

    输入username和password,登录成功后,输入

    $  docker push 用户名/repository的名字:tag的名字

    就可以把本地docker文件推到hub上了

    二.

    run docker image的方法常用的有

    1. $  docker run -it --rm --privileged repository名:tag名 bash

    2. $  docker run -d --rm 用户名/repository名:tag名 tail -f /dev/null(这里是举个栗子,主要看tail,是为了保持image运行)

    3. $ docker exec -it  写containerID  bash

    stop docker run的方法常用的有

    1. $  docker stop  写containerID

    三.

    使用$  echo y | docker system prune 去修剪、清理无用的image

    echo 是自动选择了yes(可以echo n 去自动选择no)

    四.

    映射

    在linux上用

    $ sudo docker run -it --rm --privileged -v /home/julie/dockerfile/:/dockerfile ruirui2333/ubuntu:test bash

    使用 -v 来创建映射,冒号是映射的地址,映射一次就要用一次-v  ----  用这种方式打开的image,在宿主机上会新建一个叫做dockerfile的文件夹,在image里进行的操作都会同步到宿主机上,此操作是不可逆的

    若在run的时候并不确定是否要在宿主机上同步操作,可以在image上做完操作之后,使用docker cp tag名:宿主机位置 ./  来把修改同步到宿主机上

    eg:docker run -it --rm --privileged -v /usb/bus/dev:/usb/bus/dev -v $PWD/p8log:/p8log ruirui2333/appium:justtest bash

     第一个映射是映射了usb,即可以在容器中使用adb(要先把linux的adb server关掉,才能在linux上启动的容器里使用adb)

    第二个映射的内容是:在宿主机当前位置创建的p8log,映射到home下当前用户下的p8log文件夹

    小结:

    首先在linux上安装好docker作为基础

    写dockerfile,相当于一份guide

    build dockerfile,即按照guide去建造环境,build结束后,查看镜像就可以看到刚刚创建的环境了

  • 相关阅读:
    java继承
    java构造器
    java接口
    java 泛型详解---转载
    java竞争抢答器
    java并发资源访问_01
    java多线程数字加减
    java多线程计算机流水线模型
    Java并发编程:Callable、Future和FutureTask---转载测试
    购物车
  • 原文地址:https://www.cnblogs.com/RuiRuia/p/14075274.html
Copyright © 2020-2023  润新知