Docker笔记

1,

https://gitlab-demo.com

Docker官网:https://docs.docker.com/install/overview/

有两个版本:

Docker is available in two editions:

  • Community Edition (CE)    是免费的版本
  • Enterprise Edition (EE)     是收费的版本

vagrant 安装 centos 7

vagrant + virtualBOX 安装

https://my.oschina.net/cxgphper/blog/1940644

安装Docker

系统centos7

https://docs.docker.com/install/linux/docker-ce/centos/

也可以在vagrantfile中添加安装docker shell

Vagrant up

Docker machine 在本地使用

#docker-machine  create  demo

Docker-machine ls

Docker-machine ssh  demo 进入虚机demo

Docker-machine stop demo1

Docer-machine  env demo  #print出dome虚机的env

#eval  $(docker-machine env demo)

#docker version #可以看到demo的虚机docker版本

搜索docker  playground

https://labs.play-with-docker.com/

在 https://www.docker.com/

Docker for windows7/windows10安装 以及Docker id注册

https://blog.csdn.net/xzxedu/article/details/82012297

参考docker

https://www.jianshu.com/p/38649ff222ac

引导入门:

https://blog.csdn.net/sD7O95O/article/details/80193587

[root@zizhen02 ~]# ps -ef |grep docker

root       7661      1  0 14:49 ?        00:00:03 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

root       9829   9790  0 16:32 pts/1    00:00:00 grep --color=auto docker

[root@zizhen02 ~]#

#sudo  docker  image  ls

官方给出image获取的 Docker Hub

https://hub.docker.com/search?q=&type=image

去掉sudo:

把vagrant 添加到组docker 里

#sudo  groupadd docker

#sudo gpasswd  -a  vagrant  docker

#docker  version  权限还是拒绝

#sudo  service docker  restart  重启docker服务

#docker  version

退出重新登。

#docker  image ls

#docker  pull  hello-world  获取hello-world镜像

#docker run hello-world  运行

#mkdir hello-world

#cd hello-world

#vim hello.c

-----

#include<stdio.h>

int main()

{

printf("hello docker\n");

}

-----

#yum install   gcc  glibc-static

# gcc -static hello.c -o hello

[root@zizhen02 hello-world]# ls

hello  hello.c

# cat Dockerfile

FROM scratch

ADD hello /

CMD ['/hello']

[root@zizhen02 hello-world]# docker build -t xiaoli163/hello-world .

Sending build context to Docker daemon  860.7kB

Step 1/3 : FROM scratch

--->

Step 2/3 : ADD hello /

---> d3ce8749b11d

Step 3/3 : CMD ['/hello']

---> Running in 4d72aa29e7a3

Removing intermediate container 4d72aa29e7a3

---> a821094d0306

Successfully built a821094d0306

Successfully tagged xiaoli163/hello-world:latest

[root@zizhen02 hello-world]#

# docker image ls

REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE

xiaoli163/hello-world   latest              a821094d0306        37 seconds ago      857kB

ubuntu                  14.04               5dbc3f318ea5        6 weeks ago         188MB

hello-world             latest              fce289e99eb9        2 months ago        1.84kB

centos                  latest              1e1148e4cc2c        3 months ago        202MB

[root@zizhen02 hello-world]#

[root@zizhen02 hello-world]# ls -lh

total 848K

-rw-r--r-- 1 root root   40 Mar 11 23:02 Dockerfile

-rwxr-xr-x 1 root root 837K Mar 11 22:55 hello

-rw-r--r-- 1 root root   64 Mar 11 22:48 hello.c

[root@zizhen02 hello-world]#

#查看docker的分层

[root@zizhen02 hello-world]# docker history a821094d0306

IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT

a821094d0306        4 minutes ago       /bin/sh -c #(nop)  CMD ["/bin/sh" "-c" "['/h…   0B

d3ce8749b11d        4 minutes ago       /bin/sh -c #(nop) ADD file:68a0159a95ced5415…   857kB

[root@zizhen02 hello-world]#

报错:

[root@zizhen02 hello-world]# docker run xiaoli163/hello-world

docker: Error response from daemon: OCI runtime create failed: container_linux.go:344: starting container process caused "exec: \"/bin/sh\": stat /bin/sh: no such file or directory": unknown.

Docker组件container

[root@zizhen02 ~]# docker container ls

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                        NAMES

97b6ec615252        nginx               "nginx -g 'daemon of…"   About an hour ago   Up About an hour    0.0.0.0:443->443/tcp, 0.0.0.0:8001->80/tcp   nginxv2

5cb5e2fb6d11        nginx               "nginx -g 'daemon of…"   About an hour ago   Up About an hour    192.168.1.107:8000->80/tcp                   mynginx

2ce4f13ed654        nginx               "nginx -g 'daemon of…"   About an hour ago   Up About an hour    0.0.0.0:32768->80/tcp                        condescending_wilbur

[root@zizhen02 ~]# docker images

REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE

xiaoli163/hello-world   latest              a821094d0306        18 hours ago        857kB

nginx                   latest              881bd08c0b08        7 days ago          109MB

ubuntu                  14.04               5dbc3f318ea5        6 weeks ago         188MB

hello-world             latest              fce289e99eb9        2 months ago        1.84kB

centos                  latest              1e1148e4cc2c        3 months ago        202MB

[root@zizhen02 ~]# docker container ls -a

CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS                    PORTS                                        NAMES

97b6ec615252        nginx                   "nginx -g 'daemon of…"   About an hour ago   Up About an hour          0.0.0.0:443->443/tcp, 0.0.0.0:8001->80/tcp   nginxv2

5cb5e2fb6d11        nginx                   "nginx -g 'daemon of…"   About an hour ago   Up About an hour          192.168.1.107:8000->80/tcp                   mynginx

2ce4f13ed654        nginx                   "nginx -g 'daemon of…"   About an hour ago   Up About an hour          0.0.0.0:32768->80/tcp                        condescending_wilbur

058aa0c78e3d        xiaoli163/hello-world   "/bin/sh -c ['/hello…"   18 hours ago        Created                                                                goofy_gagarin

2383acd50abe        xiaoli163/hello-world   "/bin/sh -c ['/hello…"   18 hours ago        Created                                                                loving_franklin

3dcf3c566c78        xiaoli163/hello-world   "/bin/sh -c ['/hello…"   18 hours ago        Created                                                                inspiring_antonelli

4a62f05f9141        hello-world             "/hello"                 20 hours ago        Exited (0) 20 hours ago                                                flamboyant_ellis

7327630800a1        hello-world             "/hello"                 2 days ago          Exited (0) 2 days ago                                                  infallible_chatelet

[root@zizhen02 ~]#

[root@zizhen02 ~]# docker run -it centos

[root@db568adf5c1f /]#

[root@db568adf5c1f /]#

[root@db568adf5c1f /]# ip a

bash: ip: command not found

[root@db568adf5c1f /]# ip add li

bash: ip: command not found

[root@db568adf5c1f /]# ip link show

bash: ip: command not found

[root@db568adf5c1f /]# ip

bash: ip: command not found

[root@db568adf5c1f /]# ifconfig

bash: ifconfig: command not found

[root@db568adf5c1f /]# ls

anaconda-post.log  bin  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

[root@db568adf5c1f /]# vim

bash: vim: command not found

[root@db568adf5c1f /]# vi

[root@zizhen02 ~]# docker container ls

CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                                        NAMES

db568adf5c1f        centos              "/bin/bash"              About a minute ago   Up About a minute                                                amazing_herschel

97b6ec615252        nginx               "nginx -g 'daemon of…"   About an hour ago    Up About an hour    0.0.0.0:443->443/tcp, 0.0.0.0:8001->80/tcp   nginxv2

5cb5e2fb6d11        nginx               "nginx -g 'daemon of…"   About an hour ago    Up About an hour    192.168.1.107:8000->80/tcp                   mynginx

2ce4f13ed654        nginx               "nginx -g 'daemon of…"   2 hours ago          Up 2 hours          0.0.0.0:32768->80/tcp                        condescending_wilbur

[root@zizhen02 ~]# docker container ls -a

CONTAINER ID        IMAGE                   COMMAND                  CREATED              STATUS                    PORTS                                        NAMES

db568adf5c1f        centos                  "/bin/bash"              About a minute ago   Up About a minute                                                      amazing_herschel

97b6ec615252        nginx                   "nginx -g 'daemon of…"   About an hour ago    Up About an hour          0.0.0.0:443->443/tcp, 0.0.0.0:8001->80/tcp   nginxv2

5cb5e2fb6d11        nginx                   "nginx -g 'daemon of…"   About an hour ago    Up About an hour          192.168.1.107:8000->80/tcp                   mynginx

2ce4f13ed654        nginx                   "nginx -g 'daemon of…"   2 hours ago          Up 2 hours                0.0.0.0:32768->80/tcp                        condescending_wilbur

058aa0c78e3d        xiaoli163/hello-world   "/bin/sh -c ['/hello…"   18 hours ago         Created                                                                goofy_gagarin

2383acd50abe        xiaoli163/hello-world   "/bin/sh -c ['/hello…"   18 hours ago         Created                                                                loving_franklin

3dcf3c566c78        xiaoli163/hello-world   "/bin/sh -c ['/hello…"   18 hours ago         Created                                                                inspiring_antonelli

4a62f05f9141        hello-world             "/hello"                 20 hours ago         Exited (0) 20 hours ago                                                flamboyant_ellis

7327630800a1        hello-world             "/hello"                 2 days ago           Exited (0) 2 days ago                                                  infallible_chatelet

[root@zizhen02 ~]#

Docker退出,容器退出

[root@db568adf5c1f /]# exit

exit

[root@zizhen02 ~]# docker container ls -a

CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS                      PORTS                                        NAMES

db568adf5c1f        centos                  "/bin/bash"              8 minutes ago       Exited (1) 29 seconds ago                                                amazing_herschel

删除退出未运行的容器;删除运行的容器会报错;

[root@zizhen02 ~]# docker container ls -a

CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS                     PORTS                                        NAMES

db568adf5c1f        centos                  "/bin/bash"              13 minutes ago      Exited (1) 5 minutes ago                                                amazing_herschel

97b6ec615252        nginx                   "nginx -g 'daemon of…"   About an hour ago   Up About an hour           0.0.0.0:443->443/tcp, 0.0.0.0:8001->80/tcp   nginxv2

5cb5e2fb6d11        nginx                   "nginx -g 'daemon of…"   About an hour ago   Up About an hour           192.168.1.107:8000->80/tcp                   mynginx

2ce4f13ed654        nginx                   "nginx -g 'daemon of…"   2 hours ago         Up 2 hours                 0.0.0.0:32768->80/tcp                        condescending_wilbur

058aa0c78e3d        xiaoli163/hello-world   "/bin/sh -c ['/hello…"   18 hours ago        Created                                                                 goofy_gagarin

2383acd50abe        xiaoli163/hello-world   "/bin/sh -c ['/hello…"   18 hours ago        Created                                                                 loving_franklin

3dcf3c566c78        xiaoli163/hello-world   "/bin/sh -c ['/hello…"   18 hours ago        Created                                                                 inspiring_antonelli

4a62f05f9141        hello-world             "/hello"                 20 hours ago        Exited (0) 20 hours ago                                                 flamboyant_ellis

7327630800a1        hello-world             "/hello"                 2 days ago          Exited (0) 2 days ago                                                   infallible_chatelet

[root@zizhen02 ~]# docker rm 4a

4a

[root@zizhen02 ~]# docker container ls -a

CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS                     PORTS                                        NAMES

db568adf5c1f        centos                  "/bin/bash"              13 minutes ago      Exited (1) 5 minutes ago                                                amazing_herschel

97b6ec615252        nginx                   "nginx -g 'daemon of…"   About an hour ago   Up About an hour           0.0.0.0:443->443/tcp, 0.0.0.0:8001->80/tcp   nginxv2

5cb5e2fb6d11        nginx                   "nginx -g 'daemon of…"   About an hour ago   Up About an hour           192.168.1.107:8000->80/tcp                   mynginx

2ce4f13ed654        nginx                   "nginx -g 'daemon of…"   2 hours ago         Up 2 hours                 0.0.0.0:32768->80/tcp                        condescending_wilbur

058aa0c78e3d        xiaoli163/hello-world   "/bin/sh -c ['/hello…"   18 hours ago        Created                                                                 goofy_gagarin

2383acd50abe        xiaoli163/hello-world   "/bin/sh -c ['/hello…"   18 hours ago        Created                                                                 loving_franklin

3dcf3c566c78        xiaoli163/hello-world   "/bin/sh -c ['/hello…"   18 hours ago        Created                                                                 inspiring_antonelli

7327630800a1        hello-world             "/hello"                 2 days ago          Exited (0) 2 days ago                                                   infallible_chatelet

[root@zizhen02 ~]# docker rm 7327

7327

[root@zizhen02 ~]#

#docker rm [container]  删除container

#docker rmi  [image]   删除image

[root@zizhen02 ~]# docker image ls

REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE

xiaoli163/hello-world   latest              a821094d0306        19 hours ago        857kB

nginx                   latest              881bd08c0b08        7 days ago          109MB

ubuntu                  14.04               5dbc3f318ea5        6 weeks ago         188MB

hello-world             latest              fce289e99eb9        2 months ago        1.84kB

centos                  latest              1e1148e4cc2c        3 months ago        202MB

[root@zizhen02 ~]# docker rmi fce289e99eb9

Untagged: hello-world:latest

Untagged: hello-world@sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535

Deleted: sha256:fce289e99eb9bca977dae136fbe2a82b6b7d4c372474c9235adc1741675f587e

Deleted: sha256:af0b15c8625bb1938f1d7b17081031f649fd14e6b233688eea3c5483994a66a3

[root@zizhen02 ~]# docker images

REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE

xiaoli163/hello-world   latest              a821094d0306        19 hours ago        857kB

nginx                   latest              881bd08c0b08        7 days ago          109MB

ubuntu                  14.04               5dbc3f318ea5        6 weeks ago         188MB

centos                  latest              1e1148e4cc2c        3 months ago        202MB

[root@zizhen02 ~]#

运行中的container 先#docker container stop [id] 停止; 再删除image

[root@zizhen02 ~]# docker container

Usage:     docker container COMMAND

Manage containers

Commands:

attach      Attach local standard input, output, and error streams to a running container

commit      Create a new image from a container's changes

cp          Copy files/folders between a container and the local filesystem

create      Create a new container

diff        Inspect changes to files or directories on a container's filesystem

exec        Run a command in a running container

export      Export a container's filesystem as a tar archive

inspect     Display detailed information on one or more containers

kill        Kill one or more running containers

logs        Fetch the logs of a container

ls          List containers

pause       Pause all processes within one or more containers

port        List port mappings or a specific mapping for the container

prune       Remove all stopped containers

rename      Rename a container

restart     Restart one or more containers

rm          Remove one or more containers

run         Run a command in a new container

start       Start one or more stopped containers

stats       Display a live stream of container(s) resource usage statistics

stop        Stop one or more running containers

top         Display the running processes of a container

unpause     Unpause all processes within one or more containers

update      Update configuration of one or more containers

wait        Block until one or more containers stop, then print their exit codes

Run 'docker container COMMAND --help' for more information on a command.

[root@zizhen02 ~]# docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                        NAMES

97b6ec615252        nginx               "nginx -g 'daemon of…"   About an hour ago   Up About an hour    0.0.0.0:443->443/tcp, 0.0.0.0:8001->80/tcp   nginxv2

5cb5e2fb6d11        nginx               "nginx -g 'daemon of…"   2 hours ago         Up 2 hours          192.168.1.107:8000->80/tcp                   mynginx

2ce4f13ed654        nginx               "nginx -g 'daemon of…"   2 hours ago         Up 2 hours          0.0.0.0:32768->80/tcp                        condescending_wilbur

[root@zizhen02 ~]# docker container stop 97b6ec615252

97b6ec615252

[root@zizhen02 ~]# docker container ls

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                        NAMES

5cb5e2fb6d11        nginx               "nginx -g 'daemon of…"   2 hours ago         Up 2 hours          192.168.1.107:8000->80/tcp   mynginx

2ce4f13ed654        nginx               "nginx -g 'daemon of…"   2 hours ago         Up 2 hours          0.0.0.0:32768->80/tcp        condescending_wilbur

[root@zizhen02 ~]# docker container stop 5c 2c

5c

2c

[root@zizhen02 ~]# docker container ls

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

[root@zizhen02 ~]#

批量删除container

[root@zizhen02 ~]# docker container ls -a

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES

db568adf5c1f        centos              "/bin/bash"              29 minutes ago      Exited (1) 21 minutes ago                       amazing_herschel

97b6ec615252        nginx               "nginx -g 'daemon of…"   2 hours ago         Exited (0) 5 minutes ago                        nginxv2

5cb5e2fb6d11        nginx               "nginx -g 'daemon of…"   2 hours ago         Exited (0) 5 minutes ago                        mynginx

2ce4f13ed654        nginx               "nginx -g 'daemon of…"   2 hours ago         Exited (0) 5 minutes ago                        condescending_wilbur

[root@zizhen02 ~]# docker container ls -aq

db568adf5c1f

97b6ec615252

5cb5e2fb6d11

2ce4f13ed654

[root@zizhen02 ~]# docker container ls -a| awk {'print $1'}

CONTAINER

db568adf5c1f

97b6ec615252

5cb5e2fb6d11

2ce4f13ed654

[root@zizhen02 ~]# docker rm $(docker container ls -aq)

db568adf5c1f

97b6ec615252

5cb5e2fb6d11

2ce4f13ed654

[root@zizhen02 ~]# docker container ls -a

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

[root@zizhen02 ~]#

比较复杂的删除container

[root@zizhen02 ~]# docker container ls -a

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES

e58877cb380a        nginx               "nginx -g 'daemon of…"   30 seconds ago      Exited (0) 11 seconds ago                       agitated_bartik

[root@zizhen02 ~]# docker container ls

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

[root@zizhen02 ~]# docker container ls -f "status=exited"

CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                          PORTS               NAMES

e58877cb380a        nginx               "nginx -g 'daemon of…"   About a minute ago   Exited (0) About a minute ago                       agitated_bartik

[root@zizhen02 ~]# docker container ls -f "status=exited" -q

e58877cb380a

[root@zizhen02 ~]# docker rm $(docker container ls -f "status=exited" -q)

e58877cb380a

[root@zizhen02 ~]# docker container ls

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

[root@zizhen02 ~]# docker container ls -a

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

[root@zizhen02 ~]#

docker1的更多相关文章

  1. cAdvisor0.24.1+InfluxDB0.13+Grafana4.0.2搭建Docker1.12.3 Swarm集群性能监控平台

    目录 [TOC] 1.基本概念 ​ 既然是对Docker的容器进行监控,我们就不自己单独搭建cAdvisor.InfluxDB.Grarana了,本文中这三个实例,主要以Docker容器方式运行. 本 ...

  2. Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例

    目录 [TOC] 1.环境准备 ​ 本文中的案例会有四台机器,他们的Host和IP地址如下 c1 -> 10.0.0.31 c2 -> 10.0.0.32 c3 -> 10.0.0. ...

  3. Docker1.12 新增swarm集群

    在Docker1.12新版本中,一个新增加的功能点是swarm集群,通过docker命令可以直接实现docker-engine相互发现,并组建成为一个容器集群.有关集群的docker命令如下: (1) ...

  4. Centos6.7安装docker1.7.1

    Docker当前发布的最新版本已经到了1.11,其官网上针对Centos的的安装需求如下: Docker requires a -bit installation regardless of your ...

  5. docker1.12 安装pxc(Percona XtraDB Cluster )测试

    docker1.12 安装pxc(Percona XtraDB Cluster )测试

  6. docker1.12 安装redis第三方集群方案 codis

    docker1.12 安装redis第三方集群方案 codis

  7. docker1.12在cento7里的跨多主机容器网络

    docker1.12在cento7里的跨多主机容器网络

  8. centos7 docker1.12 私有仓库

    docker1.12私有仓库 参考:http://www.cnblogs.com/xcloudbiz/articles/5497037.html 参考:http://www.07net01.com/2 ...

  9. docker1.13.1的安装与卸载及mysql5.5安装实例

    docker中国官方地址:https://www.docker-cn.com/ 您可以使用以下命令直接从该镜像加速地址进行拉取: $ docker pull registry.docker-cn.co ...

  10. 【k8s】centos上安装kubernetes,报错Error:docker-ce-cli conflicts with 2:docker-1.13.1-94.gitb2f74b2.el7.centos.x86_64

    使用命令: yum install kubernetes 报错: Error: docker-ce-cli conflicts with :docker--.git07f3374.el7.centos ...

随机推荐

  1. socket架构

    套接字基本概念 Socket是应用层与Tcp/ip协议族通信的中间软件抽象层,它是一组接口.在设计模式中,socket其实就是一个门面模式,它把复杂的tcp/ip协议族隐藏在socket接口后面,对用 ...

  2. 开发部署项目时出现:java.lang.OutOfMemoryError: PermGen space

    java.lang.OutOfMemoryError: PermGen space 错误: 原文地址:http://www.cnblogs.com/shihujiang/archive/2012/06 ...

  3. 6ci

  4. MySQL常用的锁机制 ----------顾名思义

    悲观锁与乐观锁: 悲观锁:顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁.传统的关系型数据库里边就用到了很多这 ...

  5. dede后台登陆不了、出现index.htm Not Found!、无更新模板,解析不了

    以下2个选项内设为空.  

  6. 【转载】IP地址和子网划分学习笔记之《子网掩码详解》

    原文地址: https://blog.51cto.com/6930123/2112748 一.子网掩码 IP地址是以网络号和主机号来标示网络上的主机的,我们把网络号相同的主机称之为本地网络,网络号不相 ...

  7. Spring重要知识点整理

    一.IOC(Inversion of Control):控制反转 (1)Spring Core最核心部分 (2)需要先了解依赖注入(Denpendency Injection)/把底层类作为参数传递给 ...

  8. webpack 简单配置

    webpack.config.js const path = require('path'); const HtmlWebpackPlugin=require('html-webpack-plugin ...

  9. mybatis Interceptor拦截器代码详解

    mybatis官方定义:MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis ...

  10. 详细介绍Ubuntu 16.04系统环境安装Docker CE容器的过程

    由于项目的需要,我们在很多软件配置环境中需要用到Docker容器,这个时候我们可以用自己的VPS主机搭建.在这篇文章中,笔者将会利用Ubuntu 16.04系统环境安装Docker CE容器的过程.如 ...