更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux命令 > Linux docker、domainname、dpkg-statoverride命令的用法及解释

Linux docker、domainname、dpkg-statoverride命令的用法及解释

更新时间:2022-01-22 15:11:55浏览次数:95+次

以下为你详细解释docker、domainname、dpkg-statoverride命令的用法。

\

Linux docker命令的用法及解释

1、Linux docker命令参数详解

-D 默认false 允许调试模式(debugmode)  

-H 默认是unix:///var/run/docker.sock tcp://[host[:port]]来绑定或者unix://[/path/to/socket]来使用(二进制文件的时候),当主机ip host=[0.0.0.0],(端口)port=[4243] 或者 path=[/var/run/docker.sock]是缺省值,做为默认值来使用  

-api-enable-cors 默认flase 允许CORS header远程api  

-b 默认是空,附加在已存在的网桥上,如果是用'none'参数,就禁用了容器的网络  

-bip 默认是空,使用提供的CIDR(ClasslessInter-Domain Routing-无类型域间选路)标记地址动态创建网桥(dcoker0),和-b参数冲突  

-d 默认false 允许进程模式(daemonmode)  

-dns 默认是空,使docker使用指定的DNS服务器  

-g 默认是"/var/lib/docker":作为docker使用的根路径  

-icc 默认true,允许inter-container来通信  

-ip 默认"0.0.0.0":绑定容器端口的默认Ip地址  

-iptables 默认true 禁用docker添加iptables规则  

-mtu 默认1500 : 设置容器网络传输的最大单元(mtu)  

-p 默认是/var/run/docker.pid进程pid使用的文件路径  

-r 默认是true 重启之前运行的容器  

-s 默认是空 ,这个是docker运行是使用一个指定的存储驱动器  

-v 默认false 打印版本信息和退出

2、以下是参数说明

docker build [OPTIONS] PATH | URL | -

参数说明

–build-arg=[] :设置镜像创建时的变量;

–cpu-shares :设置 cpu 使用权重;

–cpu-period :限制 CPU CFS周期;

–cpu-quota :限制 CPU CFS配额;

–cpuset-cpus :指定使用的CPU id;

–cpuset-mems :指定使用的内存 id;

–disable-content-trust :忽略校验,默认开启;

-f :指定要使用的Dockerfile路径;

–force-rm :设置镜像过程中删除中间容器;

–isolation :使用容器隔离技术;

–label=[] :设置镜像使用的元数据;

-m :设置内存最大值;

–memory-swap :设置Swap的最大值为内存+swap,”-1″表示不限swap;

–no-cache :创建镜像的过程不使用缓存;

–pull :尝试去更新镜像的新版本;

-q :安静模式,成功后只输出镜像ID;

–rm :设置镜像成功后删除中间容器;

–shm-size :设置/dev/shm的大小,默认值是64M;

–ulimit :Ulimit配置。

docker commit :从容器创建一个新的镜像。

参数说明

-a :提交的镜像作者;

-c :使用Dockerfile指令来创建镜像;

-m :提交时的说明文字;

-p :在commit时,将容器暂停。

docker events : 从服务器获取实时事件

参数说明

-f :根据条件过滤事件;

--since :从指定的时间戳后显示所有事件;

--until :流水时间显示到指定的时间为止;

docker exec :在运行的容器中执行命令

参数说明

-d :分离模式: 在后台运行

-i :即使没有附加也保持STDIN 打开

-t :分配一个伪终端

docker export :将文件系统作为一个tar归档文件导出到STDOUT。

参数说明

-o :将输入内容写到文件。

docker history : 查看指定镜像的创建历史。

参数说明

-H :以可读的格式打印镜像大小和日期,默认为true;

--no-trunc :显示完整的提交记录;

-q :仅列出提交记录ID。

docker images : 列出本地镜像。

参数说明

-a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);

--digests :显示镜像的摘要信息;

-f :显示满足条件的镜像;

--format :指定返回值的模板文件;

--no-trunc :显示完整的镜像信息;

-q :只显示镜像ID。

docker import : 从归档文件中创建镜像。

参数说明

-c :应用docker 指令创建镜像;

-m :提交时的说明文字;

docker inspect : 获取容器/镜像的元数据。

参数说明

-f :指定返回值的模板文件。

-s :显示总的文件大小。

--type :为指定类型返回JSON。

docker kill :杀掉一个运行中的容器。

参数说明

-s :向容器发送一个信号

docker login : 登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

参数说明

-u :登陆的用户名

-p :登陆的密码

docker logs : 获取容器的日志

参数说明

-f : 跟踪日志输出

--since :显示某个开始时间的所有日志

-t : 显示时间戳

--tail :仅列出最新N条容器日志

docker ps : 列出容器

参数说明

-a :显示所有的容器,包括未运行的。

-f :根据条件过滤显示的内容。

--format :指定返回值的模板文件。

-l :显示最近创建的容器。

-n :列出最近创建的n个容器。

--no-trunc :不截断输出。

-q :静默模式,只显示容器编号。

-s :显示总的文件大小。

docker pull : 从镜像仓库中拉取或者更新指定镜像

参数说明

-a :拉取所有 tagged 镜像

docker rm :删除一个或多少容器

参数说明

-f :通过SIGKILL信号强制删除一个运行中的容器

-l :移除容器间的网络连接,而非容器本身

-v :-v 删除与容器关联的卷

docker rmi : 删除本地一个或多少镜像。

参数说明

-f :强制删除;

--no-prune :不移除该镜像的过程镜像,默认移除;

docker run :创建一个新的容器并运行一个命令

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]  

-a, --attach=[]            登录容器(以docker run -d启动的容器)  

-c, --cpu-shares=0         设置容器CPU权重,在CPU共享场景使用  

--cap-add=[]               添加权限  

--cap-drop=[]              删除权限  

--cidfile=""               运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法  

--cpuset=""                设置容器可以使用哪些CPU,此参数可以用来容器独占CPU  

-d, --detach=false         指定容器运行于前台还是后台   

--device=[]                添加主机设备给容器,相当于设备直通  

--dns=[]                   指定容器的dns服务器  

--dns-search=[]            指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件  

-e, --env=[]               指定环境变量,容器中可以使用该环境变量  

--entrypoint=""            覆盖image的入口点  

--env-file=[]              指定环境变量文件,文件格式为每行一个环境变量  

--expose=[]                指定容器暴露的端口,即修改镜像的暴露端口  

-h, --hostname=""          指定容器的主机名  

-i, --interactive=false    打开STDIN,用于控制台交互  

--link=[]                  指定容器间的关联,使用其他容器的IP、env等信息  

--lxc-conf=[]              指定容器的配置文件,只有在指定--exec-driver=lxc时使用  

-m, --memory=""            指定容器的内存上限  

--name=""                  指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字  

--net="bridge"             容器网络设置,待详述  

-P, --publish-all=false    指定容器暴露的端口,待详述  

-p, --publish=[]           指定容器暴露的端口,待详述  

--privileged=false         指定容器是否为特权容器,特权容器拥有所有的capabilities  

--restart=""               指定容器停止后的重启策略,待详述  

--rm=false                 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)  

--sig-proxy=true           设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理  

-t, --tty=false            分配tty设备,该可以支持终端登录  

-u, --user=""              指定容器的用户  

-v, --volume=[]            给容器挂载存储卷,挂载到容器的某个目录  

--volumes-from=[]          给容器挂载其他容器上的卷,挂载到容器的某个目录  

-w, --workdir=""           指定容器的工作目录

docker search : 从Docker Hub查找镜像

参数说明

--automated :只列出 automated build类型的镜像;

--no-trunc :显示完整的镜像描述;

-s :列出收藏数不小于指定值的镜像。

3、实例

# 使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。

# docker run --name mynginx -d nginx:latest

# 使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。

# docker run -P -d nginx:latest

# 使用镜像nginx:latest以后台模式启动一个容器,将容器的80端口映射到主机的80端口,主机的目录/data映射到容器的/data。

# docker run -p 80:80 -v /data:/data -d nginx:latest

# 使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。

# docker run -it nginx:latest /bin/bash

# 连接到容器查看访问信息。

# docker attach mynginx

#查看所有容器的状态

# docker ps -a

CONTAINER ID        IMAGE           COMMAND           CREATED             STATUS                  PORTS    NAMES

d4a75f165ce6        centos          "/bin/bash"       2 minutes ago       Exited (0) 23 seconds ago        cranky_mahavira

可见此时容器的状态是Exited,那么,如何再次运行这个容器呢?可以使用docker start命令

运行容器

# docker start cranky_mahavira

#使用当前目录的Dockerfile创建镜像。

# docker build -t test/ubuntu:v1  

# 生成新的镜像

# docker commit centos_v1 centos:v1

68ad49c999496cff25fdda58f0521530a143d3884e61bce7ada09bdc22337638

# 将新的镜像传到hub,其中v1是tag,可不写,默认是latest

# docker push victor/centos:v1

# 容器mysql中/usr/local/bin/存在docker-entrypoint.sh文件,可如下方式copy到宿主机

#  docker cp mysql:/usr/local/bin/docker-entrypoint.sh /root

#修改完毕后,将该文件重新copy回容器

# docker cp /root/docker-entrypoint.sh mysql:/usr/local/bin/  

# 使用docker镜像nginx:latest创建一个容器,并将容器命名为mynginx,同run

# docker create  --name mynginx nginx:latest  

# 查看容器内发生改变的文件,以我的mysql容器为例

# docker diff mysqldb

C /root

A /root/.bash_history

A /test1.txt

A /test.tar

A /test.txt

C /run

C /run/mysqld

A /run/mysqld/mysqld.pid

A /run/mysqld/mysqld.sock

不难看出,C对应的均是目录,A对应的均是文件

# 实时输出Docker服务器端的事件,包括容器的创建,启动,关闭等

# docker events -f "image"="mysql:5.6" --since="1467302400"  

2021-07-11T00:38:53.975174837+08:00 container start 96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10 (image=mysql:5.6, name=mymysql)

2021-07-11T00:51:17.022572452+08:00 container kill 96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10 (image=mysql:5.6, name=mymysql, signal=9)

......

# docker exec -d cc touch 123   # 后台型任务

# 后台型任务

[root@localhost ~]# docker exec -i -t cc /bin/bash

root@1e5bb46d801b:/# ls

123  bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

# 将容器的文件系统打包成tar文件

# docker export -o mysqldb1.tar mysqldb

# docker export mysqldb > mysqldb.tar

#显示镜像制作的过程,相当于dockfile

# docker history test/centos:lastest

IMAGE             CREATED           CREATED BY                                      SIZE      COMMENT

4e3b13c8a266      3 months ago      /bin/sh -c #(nop) CMD ["/bin/bash"]             0 B                 

         3 months ago      /bin/sh -c sed -i 's/^#\s*\(deb.*universe\)$/   1.863 kB            

         3 months ago      /bin/sh -c set -xe   && echo '#!/bin/sh' > /u   701 B               

         3 months ago      /bin/sh -c #(nop) ADD file:43cb048516c6b80f22   136.3 MB

# 查看本地镜像列表。

# docker images

# 根据tar文件的内容新建一个镜像,与之前的export命令相对应

[root@localhost ~]# docker import mysqldb.tar mysql:v1

# 查看docker的系统信息

[root@localhost ~]# docker info

Containers: 3    --当前有3个容器

Images: 298      

Storage Driver: devicemapper

......

# 获取镜像mysql的信息。

# docker inspect mysql:5.6

[

    {

        "Id": "sha256:2c0964ec182ae9a045f866bbc2553087f6e42bfc16074a74fb820af235f070ec",

        "RepoTags": [

            "mysql:5.6"

        ],

        "RepoDigests": [],

        "Parent": "",

        "Comment": "",

......

# 登录到自己的Docker Hub的账号

[root@localhost ~]# docker login

Username: ivictor

Password:

Email: xxxx@foxmail.com

WARNING: login credentials saved in /root/.docker/config.json

Login Succeeded

# 输出容器端口与宿主机端口的映射情况

# docker port blog

80/tcp -> 0.0.0.0:80

# 列出所有在运行的容器信息。

# docker ps

CONTAINER ID   IMAGE          COMMAND                ...  PORTS                    NAMES

09b93464c2f7   nginx:latest   "nginx -g 'daemon off" ...  80/tcp, 443/tcp          mytest

96f7f14e99ab   mysql:5.6      "docker-entrypoint.sh" ...  0.0.0.0:3306->3306/tcp   mymysql

# 列出最近创建的5个容器信息。

# docker ps -n 2

CONTAINER ID        IMAGE               COMMAND                   CREATED           

09b93464c2f7        nginx:latest        "nginx -g 'daemon off"    2 days ago   ...     

b8573233d675        nginx:latest        "/bin/bash"               2 days ago   ...     

# 拉取nginx镜像

# docker pull nginx

# 强制删除容器db01、db02

# docker rm -f db01、db02

# 移除容器nginx01对容器db01的连接,连接名db

# docker rm -l db  

# 删除容器nginx01,并删除容器挂载的数据卷

# docker rm -v nginx01

# 强制删除本地镜像test/centos:v3。

# docker rmi -f test/centos:v3

# 将镜像打包,与上面的load命令相对应

# docker save -o nginx.tar nginx

# docker search nginx    #查找

# docker start nginx     #启动

# docker restart nginx   #重新启动

# docker stop nginx      #停止

# docker stats nginx     #状态

#镜像重命名

# docker tag centos test/centos:v3

Linux domainname命令的用法及解释

Linux domainname命令用于显示和设置系统的NIS域名。

1、语法

domainname(选项)(参数)

2、选项

-v:详细信息模式;

-F:指定读取域名信息的文件。

3、参数

NIS域名:指定要设置的NIS域名。

4、实例

[root@AY1307311912260196fcZ ~]# domainname -v

getdomainname()=`(none)'

(none)

[root@AY1307311912260196fcZ ~]# domainname

hmxthome.com

[root@AY1307311912260196fcZ ~]# domainname -v

getdomainname()=`hmxthome.com'

hmxthome.com

Linux dpkg-statoverride命令的用法及解释

Linux dpkg-statoverride命令用于Debian Linux中覆盖文件的所有权和模式,让dpkg于包安装时使得文件所有权与模式失效。

1、语法

dpkg-statoverride(选项)

2、选项

-add:为文件添加一个改写;

--remove:为文件删除一个改写;

--list:显示所有改写列表;

--update:如果文件存在,则立刻执行改写操作。

3、实例

修改文件夹的权限属性:

sudo dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios3

强制修改文件夹的权限属性:

sudo dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd

将文件从数据库中删除:

sudo dpkg-statoverride --remove /usr/bin/wall