zoukankan      html  css  js  c++  java
  • ubuntu 下 docker的简单使用

    安装之前首先确认自己的ubuntu版本:

    # 检查内核版本
    sudo uname -a

    # 存储驱动检查
    sudo ls -l /sys/class/misc/device-mapper

    ----最低版本要求: 64 位 Ubuntu, 内核版本最低为 3.10

    更新apt-get源并下载docker

    # 更新apt-get源
    $ sudo apt-get update
    # 下载docker
    $ sudo apt-get install docker

    配置仓库地址:

    原始的docker hub更github一样是在国外的,国内访问会很慢,所以建议修改为国内的镜像地址,本人采用阿里云的.

    阿里云镜像地址: https://dev.aliyun.com/search.html 。可以自行登录后复制

    # 创建docker配置文件夹
    sudo mkdir -p /etc/docker
    # 执行写入仓库地址
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com(自己的阿里云仓库地址)"]
    }
    EOF
    # 重启docker
    sudo systemctl daemon-reload
    sudo systemctl restart docker

    可以设置开机自动启动docker:

    systemctl enable docker
    

      

    docker的常用命令:

    -- 镜像相关:

    列出当前本地的镜像

    # docker images  [-options]
    # 列出本地当前所有镜像,包括分层显示的镜像
    docker images -a
    # 显示镜像ID
    docker images -q
    # 显示所有镜像包括摘要信息
    docker images --digest

    搜索网络镜像:

    # 查询某个镜像在docker hub上的情况
    docker search 镜像名/镜像ID
     
    # 查询在docker hub上点赞数为n以上的镜像
    docker search -s n 镜像名/ID
     

    下载镜像到本地

    # 默认下载最新版本的镜像,latest
    docker pull 镜像名/ID
     
    # 下载指定版本
    docker pull 镜像名/ID: 版本号/latest(最新版)
     

    删除本地镜像

    # 正在使用的镜像无法删除,可以加-f
    docker rmi 镜像名/ID(:版本号)
     
    # 强制删除本地镜像,包括正在使用的镜像
    docker rmi -f 镜像名/ID(:版本号)
     
    # 强制删除多个镜像
    docker rmi -f 镜像名/ID(:版本号)  镜像名/ID(:版本号)  镜像名/ID(:版本号)
     
    # 清除本地的镜像(删除所有本地镜像)
    docker rmi -f $(docker images -qa)

    -- 容器相关命令

    创建和启动容器

    # 以交互模式,创建运行容器实例
    docker run -it --name 容器别名 镜像ID/名

    查看当前运行的容器

    # 列出当前正在运行的容器
    docker ps
     
    # 列出当前运行和以前所有运行过的容器
    docker ps -a
     
    # 列出上一次运行的容器
    docker ps -l
     
    # 列出上5次运行的容器
    docker ps -n 5

    停止退出容器的命令:

    # 停止并退出容器
    exit
     
    # 退出但后台运行(不停止)容器
    ctrl + p + q
     
    # 强制杀死(停止)容器
    docker kill 容器ID/名

    重启容器(后台运行),不进入交互模式运行

    # 停止容器
    docker stop 容器ID/名
     
    # 启动容器(不进入容器)
    docker start 容器ID/名   
     
    # 重启容器(不进入容器)
    docker restart 容器ID/名

    删除容器

    # 删除容器
    docker rm 容器ID/# 强制删除容器,如果容器正在后台运行,立即停止并删除
    docker rm -f 容器ID/# 清空所有的容器(删除所有容器)
    # 方法一
    docker rm -f $(docker ps -aq)
    # 方法二
    docker ps -aq | xargs docker rm

    以守护进程的方式运行容器,如果开启的容器没有开启的进程(没事做)会立即自杀,如后台有进程正在运行,该容器会后台运行

    docker run -d 镜像名/ID

    查看容器的日志信息

    docker logs -f -t --tail 容器ID/名

    查看容器内部的进程信息

    docker top 容器ID/名

    查看容器内部细节

    docker inspect 容器ID/名

    进入容器交互(后台运行着的容器)

    # 进入后台运行的容器(直接进入)
    # 方法一
    docker attach 容器ID/# 方法二
    docker exec -it 容器ID/名 /bin/bash
     
    # 不进入容器的情况下,在宿主机上面直接执行操作容器,并返回结果
    docker exec -t 容器ID/名 pwd 

    将容器中的文件拷贝到本地当前目录下

    docker cp 容器ID/名:/路径/文件

    mysql部署命令:

    docker run -di --name=容器名 -p 33306:3306 -e MYSQL_ROOT_PASSWORD=root密码 mysql镜像名

    mysql容器创建完成后可以使用指定ip连接数据库

    将容器保存为镜像,可以用于迁移环境

    docker commit 容器名  镜像名

    将镜像保存成文件,方便迁移

    docker save -o 文件名.tar 镜像名

    dockerfile,镜像文件的文件描述(docker编程)

    自定义制作docker镜像文件,构件的镜像名为name

    docker build -f dockerfile文件  -t  name(创建新的镜像名)

    如下简单的编写dockerfile

    FROM ubuntu  # 基础镜像
    VOLUME ['容器内目录1', '容器内目录2'] #添加数据卷,关联共享的目录,宿主机默认,可以用docker inspect  ID查看
    CMD /bin/bash # 运行容器时执行的命令

    dockerfile特点:

    一.每条保留字指令必须大写字母,且后面至少有一个参数

    二.指令从上往下执行,#表示注释

    三.每条指令都会创建一个新的镜像层,并对镜像进行提交

    docker的指令如下:

    FROM ------------> 基础镜像,当前新镜像是基于哪个镜像的

    MAINTAINER --->镜像维护者名字和邮箱(作者)

    RUN---------------->容器构建时需要运行的命令

    EXPOSE----------->容器启动后对外暴露的端口号

    WORKDIR--------->指定在创建容器后终端默认登陆进来的工作目录

    ENV------------------>用来在创建镜像过程中设置环境变量的

    ADD------------------>拷贝并解压缩

    COPY----------------->类似于ADD,只做拷贝

    CMD------------------->指定容器启动时要运行的命令

    ENTRYPOINT------->追加覆盖指令,类似于CMD,但CMD只有一条生效

    本文借鉴与网络博客

    原文:https://blog.csdn.net/weixin_42693794/article/details/84931697 
  • 相关阅读:
    python的多线程问题
    python 调用函数时使用星号 *, **
    python正则中的贪婪与非贪婪
    python中文处理
    Python 模块之 ConfigParser: 用 Python 解析配置文件
    substr使用注意
    [转]互联网后台服务的协议设计
    Java设计模式从精通到入门四 工厂方法模式
    logback中logger详解
    logback实践笔记
  • 原文地址:https://www.cnblogs.com/liangliangzz/p/11072522.html
Copyright © 2011-2022 走看看