• docker指令


    Docker重要概念

    镜像(Image)、容器(Container)、仓库(Registry)

    https://gitchat.csdn.net/columnTopic/5a13bf0175462408e0da8dc1

    Docker CE 的安装

    卸载旧版本:sudo apt-get remove docker docker-engine docker.io

    安装Docker CE:https://gitchat.csdn.net/columnTopic/5a13bf6475462408e0da8df3

    Docker使用入门(一)

    镜像

    获取镜像:sudo docker pull ubuntu:16.04

    查看电脑中有哪些镜像:sudo docker images

    删除镜像:sudo docker rmi [nameOfImage]

    查看镜像操作记录:sudo docker history [nameOfImage]

    查看镜像详细信息:sudo docker inspect [nameOfImage]

    给镜像设置一个新的仓库:版本对:sudo docker tag my_image:v1.0 my:v0.1

    容器

    从镜像运行一个容器:sudo docker run -ti --name first ubuntu:16.04 bash

    • -ti 参数的含义是:terminal interactive,这个参数可以让我们进入容器的交互式终端。
    • --name 指定容器的名字,后面的 first 就是我们给这个容器起的名字。
    • ubuntu:16.04 是致命从哪个镜像运行容器,ubuntu是仓库名,16.04是标签。
    • bash 指明我们使用 bash 终端。

    从相同的镜像再运行一个新的容器:sudo docker run -ti --name second ubuntu:16.04 bash

    退出容器:exit

    查看当前的容器:sudo docker ps -a

    把容器提交为一个新的镜像:sudo docker commit first my_image:v1.0

      其中,my_image:v1.0 就是“仓库名:版本号”。真正开发的时候要避免从容器提交镜像的方法。

    具体来说,当你运行“Docker run”的时候:

    • 检查本地是否存在指定的镜像,不存在就从公共仓库下载;
    • 利用镜像创建并启动一个容器;
    • 给容器包含一个主进程(Docker 原则之一:一个容器一个进程,只要这个进程还存在,容器就会继续运行);
    • 为容器分配文件系统,IP,从宿主主机配置的网桥接口中桥接一个虚拟接口等(会在之后的教程讲解)。

    所谓“守护态运行”其实就是后台运行(background running),有时候,需要让 Docker 在后台运行而不是直接把执行的结果输出到当前的宿主主机下,这个时候需要在运行“docker run”命令的时候加上 “-d”参数(-d means detach)。

    sudo docker run -d --name withD ubuntu:16.04 bash -c "echo hello world"

    进入容器一般有三种方法:

    • ssh 登录
    • attach 和 exec
    • nesenter

    exec方式:sudo docker exec -ti first bash

    若提示错误:Error response from daemon: Container e3cdd07155f738b6b2ab234cb33c4d1f85c7f4645a7fa2e3173e5638de9bf001 is not running

    则先执行:docker start first

    docker run与docker start的区别

    docker run 只在第一次运行时使用,将镜像放到容器中,以后再次启动这个容器时,只需要使用命令docker start 即可。
    docker run相当于执行了两步操作:将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start)。

    attach方式:sudo docker attach first

    区别:attach 实际就是进入容器的主进程,所以无论你同时 attach 多少,其实都是进入了主进程。exec 就不一样了,exec 的过程其实是给容器新开了一个进程。

    终止运行的容器:

    方式1:sudo kill nameOfContainer

    方式2:attach 进入容器之后运行“exit”结束容器主进程

    删除容器:sudo docker rm nameOfContainer

    查看容器详细信息: sudo docker inspect [nameOfContainer]

    查看容器最近一个进程:sudo docker top [nameOfContainer]

    停止一个正在运行的容器:sudo docker stop [nameOfContainer]

    重启一个正在运行的容器:sudo docker restart [nameOfContainer]

    暂停一个容器进程:sudo docker pause [nameOfContainer]

    取消暂停:sudo docker unpause [nameOfContainer]

    终止一个容器:sudo docker kill [nameOfContainer]

    Docker日志:sudo docker logs [nameOfContainer]

    Docker使用入门(二)

    在容器里直接写入数据是很不好的习惯,那么,如果想在容器里面写入数据,该怎么做呢?Docker 数据管理主要有两种方式:数据卷数据卷容器

    数据卷

    在运行 Docker run 命令的时候使用 -v 参数为容器挂载一个数据卷:sudo docker run -ti --name volume1 -v /myDir ubuntu:16.04 bash

    可以发现我们的容器里面有一个 myDir 的目录,这个目录就是我们所说的数据卷。

    删除一个数据卷

    数据卷是用来持久化数据的,所以数据卷的生命周期独立于容器。所以在容器结束后数据卷并不会被删除,如果你希望删除数据卷,可以在使用 docker rm 命令删除容器的时候加上 -v 参数。

    Docker网络

    查看容器端口映射:
    docker container port d11ff9db039a[container ID] 

  • 相关阅读:
    跨域 反向解析
    人工智能-邮箱验证
    人工智能-Selenium
    人工智能-画图形(扩展)
    人工智能-画图形(2)
    人工智能—爬虫
    人工智能—图形
    在django中进行MySQL入库
    djang 过滤器和装饰器
    NGINX、HAProxy和Traefik负载均衡能力对比(转载)
  • 原文地址:https://www.cnblogs.com/walker-lin/p/11203276.html
Copyright © 2020-2023  润新知