• docker 技术全面整理


    docker 和 vm 虚拟机技术比较像,但又有一些区别。

    vm 像真机一样有 BIOS ,有硬盘,有网卡,声卡,可以安装操作系统, win7 win10 macOS ubuntu centOS,有好用方便的快照功能,隔离性较强,vm 蹦溃不影响宿主,软件发布时间长,支持众多宿主操作系统,XP WIN7 centOS 6。

    vm 缺点也是上面的问题,需要自行安装 操作系统,软件,启动慢,大概需要1分钟,高配电脑,也需要有半分钟。

    docker 可以很方便的拉取 image 运行,省去了自行安装操作系统和软件的过程。还可以很方便的进行配置或删除。随便安装ubuntu 14 16 18 仅需要下载 image 就行了。启动快速,秒开。

    docker 缺点是不支持 windows mac OS 这种非 linux 的操作系统,软件这几年刚有,仅支持 CentOS 6.8 7 或更高版本,kernel 要求 3.1 以上,仅支持 win10,还是用虚拟机实现。

    基本使用

    1, 先去 https://www.docker.com/ 注册一个帐户 因为有的 image 需要登录用户才能拉取

    2, 安装 docker 在 ubuntu 18  

    sudo apt-get install docker.io
    sudo docker info

    3, 添加 docker 用户,这样以后就不必每次都打 sudo 

    sudo groupadd docker     #添加docker用户组
    sudo gpasswd -a $USER docker     #将登陆用户加入到docker用户组中
    newgrp docker     #更新用户组
    docker ps    #测试docker命令是否可以使用sudo正常使用

    4,启用systemctl

    sudo systemctl enable docker
    sudo systemctl start docker

    5, 拉取 nginx 并运行

    docker pull nginx
    docker run --name "nginx" -p 80:80 -d nginx

      #传入 html 路径 交互模式 退出自动删除容器
      docker run --rm -it -p 8000:80 -v $PWD/html:/usr/share/nginx/html nginx

    6, 修改docker 保存的位置, 用软链比较简单。

    sudo mv /var/lib/docker /opt/data/
    sudo ln -s /opt/data/docker/ /var/lib/docker

    7, 其它的命令

    搜索 image
    docker search nginx

    查看容器运行状态
    docker ps -a 

    查看所有镜像
    sudo docker images

    仅显示容器ID
    sudo docker ps -aq

    停止所有容器
    sudo docker stop $(sudo docker ps -aq)

    删除所有容器
    sudo docker rm $(sudo docker ps -aq)

    进入容器
    sudo docker exec -it f66627b76918 /bin/bash

    复制容器配置文件
    docker cp f66627b76918:/etc/nginx/ .

    run 详细参数
    https://docs.docker.com/engine/reference/commandline/run/#options
    --detach , -d Run container in background and print container ID
    --rm Automatically remove the container when it exits
    --interactive , -i Keep STDIN open even if not attached
    --tty , -t Allocate a pseudo-TTY

    如何打包制作镜像 image 

    Dockerfile  

    ENV PORT 8000 #设置变量,可以通过 -e 指定
    RUN apt-get update && apt-get install -y ssh && rm -rf /var/lib/apt/lists/* # 执行普通的命令
    RUN sed -i 's/# StrictHostKeyChecking ask/StrictHostKeyChecking no/' /etc/ssh/ssh_config #通过 sed 流文本编译器来修改文件,经常使用
    COPY run.sh /run.sh #复制文件到镜像中 另一个常用的是 ADD 可以从网络读取下载到镜像
    EXPOSE 80 #声明发布的端口 这里是 web 的 80
    CMD ["/run.sh"] #自动启动时执行的自定义命令  -d 的时候

    开始构建
    docker build -t ubuntu-nginx .

  • 相关阅读:
    什么是软件质量?
    软件生存周期及其模型是什么?
    给你一个网站,你如何测试?
    jquery中$.get()提交和$.post()提交有区别吗?
    JQuery有几种选择器?
    ajax和layui总结
    md5加密
    Collection接口相关介绍
    JS 中document.URL 和 windows.location.href 的区别
    window.location.href的用法(动态输出跳转)
  • 原文地址:https://www.cnblogs.com/ningci/p/10050879.html
Copyright © 2020-2023  润新知