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

  • 相关阅读:
    Ubuntu 下安装 PHP Solr 扩展的安装与使用
    转载:Ubuntu14-04安装redis和php5-redis扩展
    Datagridview全选,更新数据源代码
    sftp不识别的问题ssh命令找不到
    linux:如何修改用户的密码
    win7.wifi热点
    Rico Board.1.环境配置
    linux学习记录.6.vscode调试c makefile
    linux学习记录.5.git & github
    linux学习记录.3.virtualbox 共享文件夹
  • 原文地址:https://www.cnblogs.com/architectforest/p/12319240.html
Copyright © 2011-2022 走看看