zoukankan      html  css  js  c++  java
  • docker的常用操作

    一,查看本地centos的版本:

    [root@localhost lib]# cat /etc/redhat-release 
    CentOS Linux release 8.1.1911 (Core) 

    说明:架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

             对应的源码可以访问这里获取: https://github.com/liuhongdi/

     说明:作者:刘宏缔 邮箱: 371125307@qq.com

    二,image的操作

    1,从docker hub下载一个centos镜像

    [root@localhost ~]# docker pull centos:latest

    说明:格式:docker pull 镜像名:TAG

    Tag表示版本,有些镜像的版本显示latest,为最新版本docker pull 镜像名:TAG

    2,列出已下载的image

    [root@localhost ~]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    centos              latest              470671670cac        4 weeks ago         237MB

    3,查看一个镜象的详细信息

    [root@localhost ~]# docker inspect 470671670cac

    说明:470671670cac 是image 的id

    4,从docker hub搜索image

    [root@localhost ~]# docker search fedora

    三,容器的操作

    1,运行一个容器

    [root@localhost ~]# docker run --name web1 -d 470671670cac

    说明:

            命令格式:docker run --name 容器名 -i -t -p 主机端口:容器端口 -d -v 主机目录:容器目录:ro 镜像TD或镜像名:TAG
            --name 指定容器名,可自定义,不指定自动命名
            -i 以交互模式运行容器
            -t 分配一个伪终端,即命令行,通常组合来使用
            -p 指定映射端口,将主机端口映射到容器内的端口
            -d 后台运行容器
            -v 指定挂载主机目录到容器目录,默认为rw读写模式,ro表示只读

    2,列出当前有哪些容器在运行

    [root@localhost ~]# docker ps -a

    说明:-a 查看所有容器(运行中、未运行)

             -q 只查看容器的ID

    3,查看容器的元信息:

    [root@localhost ~]# docker inspect dc9d7f437b12

    4,查看一个容器的日志:

    [root@localhost ~]# docker logs dc9d7f437b12

    5,停止一个容器:

    [root@localhost ~]# docker stop dc9d7f437b12

    6,删除一个容器:

    [root@localhost ~]# docker rm dc9d7f437b12

    7,进入一个正在运行的容器

    [root@localhost ~]# docker exec -it c67787d7ee86 /bin/bash
    [root@c67787d7ee86 /]# pwd
    /

    说明:c67787d7ee86是容器的id

    四,容器内不能正常上网的解决:

    1,编辑daemon.json文件

    [root@localhost liuhongdi]# more /etc/docker/daemon.json 
    {
    "dns" : [
    "114.114.114.114",
    "8.8.8.8"
    ]
    }

    2,编辑sysctl.conf文件

    [root@localhost liuhongdi]# more /etc/sysctl.conf
    
    net.ipv4.ip_forward = 1
    
    net.ipv4.conf.default.rp_filter = 0
    
    net.ipv4.conf.all.rp_filter = 0

    完成后:

    [root@localhost liuhongdi]# sysctl -p

    3,以上两项完成后,重启docker:

    [root@localhost liuhongdi]# systemctl restart docker

    五,如果需要修改网络接口数据,如何启动容器?

    1,相关的命令:

        以下两个命令均可

    [root@localhost liuhongdi]# docker run --name web2 --cap-add=NET_ADMIN -d -i -t 470671670cac
    [root@localhost liuhongdi]# docker run --name web2 --privileged -d -i -t 470671670cac

    2,

    说明:

    大约在0.6版,privileged被引入docker。

    使用该参数,container内的root拥有真正的root权限。

    否则,container内的root只是外部的一个普通用户权限。

    privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。

    甚至允许你在docker容器中启动docker容器。

    3,

    说明:--cap-add的范围:

    [CAP_CHOWN,CAP_DAC_READ_SEARCH,CAP_FOWNER,CAP_FSETID,CAP_KILL,CAP_SETGID,CAP_SETUID,CAP_SETPCAP,CAP_LINUX_IMMUTABLE,CAP_NET_BIND_SERVICE,CAP_NET_BROADCAST,CAP_NET_ADMIN,CAP_NET_RAW,CAP_IPC_LOCK,CAP_IPC_OWNER,CAP_SYS_MODULE,CAP_SYS_RAWIO,CAP_SYS_CHROOT,CAP_SYS_PTRACE,CAP_SYS_PACCT,CAP_SYS_ADMIN,CAP_SYS_BOOT,CAP_SYS_NICE,CAP_SYS_RESOURCE,CAP_SYS_TIME,CAP_SYS_TTY_CONFIG,CAP_MKNOD,CAP_LEASE,CAP_AUDIT_WRITE,CAP_AUDIT_CONTROL,CAP_SETFCAP,CAP_MAC_OVERRIDE,CAP_MAC_ADMIN,CAP_SYSLOG,CAP_WAKE_ALARM,CAP_BLOCK_SUSPEND,]

    privileged 就等于 –cap-add=ALL

  • 相关阅读:
    数据库字段太多,批量快速建立实体类方法(适合大量字段建立实体类)
    SQL service 中的 ”输入SQL命令窗口“ 打开了 “属性界面” 回到 ”输入SQL命令窗口“
    计算机软件编程英语词汇集锦
    编程常用英语词汇
    svn上传和下载项目
    当启动tomcat时出现tomcat setting should be set in tomcat preference page
    Implicit super constructor Object() is undefined for default constructor. Must define an explicit constructor
    eclipse中选中一个单词 其他相同的也被选中 怎么设置
    Spring Boot的@SpringBootApplication无法引入的问题
    最全的SpringCloud视频教程
  • 原文地址:https://www.cnblogs.com/architectforest/p/12319240.html
Copyright © 2011-2022 走看看