Docker 操作指南之運行命令篇

      網友投稿 1222 2025-03-31

      docker run

      -a

      –add-host

      –blkio-weight

      磁盤IO配額控制示例

      容器空間大小限制

      docker run

      -a

      –add-host

      –blkio-weight

      磁盤IO配額控制示例

      容器空間大小限制

      –cidfile=

      –cpu-shares

      –cpu-period, --cpu-quota

      –cpuset-cpus, --cpuset-mems

      -d, --detach

      –device=

      –disable-content-trust

      –dns

      –dns-opt

      –dns-search

      -e, --env

      –entrypoint

      示例一

      示例二

      –expose

      –group-add

      -h, --hostname

      -i, --interactive=false

      –ipc

      –kernel-memory

      -l, --label

      –link

      示例:連接兩個容器

      –log-driver

      Docker 操作指南之運行命令篇

      –mac-address

      -m, --memory

      -memory-reservation

      –memory-swap

      –memory-swappiness

      –name

      –net

      –oom-kill-disable

      -P, --publish-all

      -p, --publish

      –pid

      –privileged

      –read-only

      –rm

      –security-opt

      –sig-proxy

      –stop-signal

      -t, --tty

      -u, --user

      –ulimit

      -v, --volume

      –volumes-from

      -w, --workdir

      docker run

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

      -a

      -a, --attach=[] Attach to STDIN, STDOUT or STDERR

      如果在執行 run 命令時沒有指定 -a,那么 docker 默認會掛載所有標準數據流,包括輸入輸出和錯誤。你可以特別指定掛載哪個標準流。

      $ docker run -a stdin -a stdout -i -t ubuntu:14.04 /bin/bash

      (只掛載標準輸入輸出)

      –add-host

      --add-host=[] Add a custom host-to-IP mapping (host:ip)

      添加 host-ip 到容器的 hosts 文件

      $ docker run -it --add-host db:192.168.1.1 ubuntu:14.04 /bin/bash root@70887853379d:/# cat /etc/hosts 172.17.0.2 70887853379d 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 192.168.1.1 db

      –blkio-weight

      --blkio-weight=0 Block IO (relative weight), between 10 and 1000

      相對于 CPU 和 內存 的配額控制,docker 對磁盤 IO 的控制相對不成熟,大多數都必須在有宿主機設備的情況下使用。主要包括以下參數:

      device-read-bps:限制此設備上的讀速度(bytes per second),單位可以是 kb、mb 或者 gb.

      -device-read-iops:通過每秒讀 IO 次數來限制指定設備的讀速度。

      –device-write-bps :限制此設備上的寫速度(bytes per second),單位可以是kb、mb或者gb。

      –device-write-iops:通過每秒寫 IO 次數來限制指定設備的寫速度。

      –blkio-weight:容器默認磁盤 IO 的加權值,有效值范圍為10-100。

      –blkio-weight-device: 針對特定設備的 IO 加權控制。其格式為 DEVICE_NAME:WEIGHT 存儲配額控制的相關參數,可以參考Red Hat 文檔中 blkio 這一章,了解它們的詳細作用。

      blkio-weight

      要使 –blkio-weight 生效,需要保證 IO 的調度算法為 CFQ。可以使用下面的方式查看:

      root@ubuntu:~# cat /sys/block/sda/queue/scheduler noop [deadline] cfq

      使用下面的命令創建兩個 –blkio-weight 值不同的容器:

      $ docker run -ti –rm –blkio-weight 100 ubuntu:stress $ docker run -ti –rm –blkio-weight 1000 ubuntu:stress

      在容器中同時執行下面的 dd 命令,進行測試:

      time dd if=/dev/zero of=test.out bs=1M count=1024 oflag=direct

      device-write-bps

      使用下面的命令創建容器,并執行命令驗證寫速度的限制。

      $ docker run -tid –name disk1 –device-write-bps /dev/sda:1mb ubuntu:stress

      在 docker 使用 devicemapper 作為存儲驅動時,默認每個容器和鏡像的最大大小為 10 G。如果需要調整,可以在 daemon 啟動參數中,使用 dm.basesize 來指定,但需要注意的是,修改這個值,不僅僅需要重啟 docker daemon 服務,還會導致宿主機上的所有本地鏡像和容器都被清理掉。

      使用 aufs 或者 overlay 等其他存儲驅動時,沒有這個限制。

      –cidfile=

      --cidfile= Write the container ID to the file

      將 container ID 保存到 cid_file, 保存的格式為長 UUID

      $ docker run -it --cidfile=cid_file ubuntu:14.04 /bin/bash #cat cid_file 5fcf835f2688844d1370e6775247c35c9d36d47061c4fc73e328f9ebf920b402

      –cpu-shares

      --cpu-shares=0 CPU shares (relative weight)

      默認情況下,使用 -c 或者 --cpu-shares 參數值為0,可以賦予當前活動 container 1024個 cpu 共享周期。這個0值可以針對活動的 container 進行修改來調整不同的 cpu 循環周期。

      比如,我們使用 -c 或者 --cpu-shares=0 啟動了 C0,C1,C2 三個c ontainer,使用 -c/–cpu-shares=512 啟動了C3.這時,C0,C1,C2 可以 100%的使用 CPU 資源(1024),但 C3 只能使用 50%的 CPU 資源(512)。如果這個 host 的 OS 是時序調度類型的,每個 CPU 時間片是 100 微秒,那么C0,C1,C2將完全使用掉這 100 微秒,而 C3 只能使用 50 微秒。

      –cpu-period, --cpu-quota

      --cpu-period=0 Limit CPU CFS (Completely Fair Scheduler) period --cpu-quota=0 Limit CPU CFS (Completely Fair Scheduler) quota

      –cpu-period 和 --cpu-quota,這兩個參數是相互配合的,–cpu-period 和 --cpu-quota 的這種配置叫 Ceiling Enforcement Tunable Parameters,–cpu-shares 的這種配置叫 Relative Shares Tunable Parameters。–cpu-period是用來指定容器對CPU的使用要在多長時間內做一次重新分配,而 --cpu-quota 是用來指定在這個周期內,最多可以有多少時間用來跑這個容器。跟 --cpu-shares 不同的是這種配置是指定一個絕對值,而且沒有彈性在里面,容器對CPU資源的使用絕對不會超過配置的值。

      比如說 A 容器配置的 --cpu-period=100000 --cpu-quota=50000,那么 A 容器就可以最多使用 50% 個 CPU 資源,如果配置的–cpu-quota=200000,那就可以使用 200% 個 CPU 資源。

      那么有什么樣的應用場景呢?簡單舉個例子,加入對外提供 A 和 B 兩個服務,但是 A 的優先級比 B 要高,假如只用 --cpu-shares來配置,B 服務占用資源太高時是會對 A 有一定的影響的,但是如果通過 --cpu-period 和 --cpu-quota 來配置,就能起到絕對的控制,做到無論B怎么樣,都不會影響到 A。

      cpu-period 和 cpu-quota 的單位為微秒(μs)。cpu-period的最小值為1000微秒,最大值為1秒(10^6 μs),默認值為 0.1 秒(100000 μs)。cpu-quota 的值默認為 -1,表示不做控制

      –cpuset-cpus, --cpuset-mems

      --cpuset-cpus= CPUs in which to allow execution (0-3, 0,1) --cpuset-mems= MEMs in which to allow execution (0-3, 0,1)

      對多核 CPU 的服務器,docker 還可以控制容器運行限定使用哪些 cpu 內核和內存節點,即使用 –cpuset-cpus 和 –cpuset-mems參數。對具有 NUMA 拓撲(具有多 CPU、多內存節點)的服務器尤其有用,可以對需要高性能計算的容器進行性能最優的配置。如果服務器只有一個內存節點,則 –cpuset-mems 的配置基本上不會有明顯效果。

      使用示例:

      #表示創建的容器只能用 0、1、2 這三個內核。最終生成的 cgroup 的cpu docker run -tid –name cpu1 –cpuset-cpus 0-2 ubuntu

      內核配置如下:

      # cat /sys/fs/cgroup/cpuset/docker/<容器的完整長ID>/cpuset.cpus 0-2

      通過 docker exec <容器ID> taskset -c -p 1(容器內部第一個進程編號一般為1),可以看到容器中進程與 CPU 內核的綁定關系,可以認為達到了綁定 CPU 內核的目的。

      -d, --detach

      -d, --detach=false Run container in background and print container ID

      如果在 docker run 后面追加 -d=true 或者 -d,則 containter 將會運行在后臺模式(Detached mode)。此時所有 I/O 數據只能通過網絡資源或者共享卷組來進行交互。因為 container 不再監聽你執行 docker run 的這個終端命令行窗口。但你可以通過執行docker attach 來重新掛載這個container 里面。需要注意的時,如果你選擇執行 -d 使 container 進入后臺模式,那么將無法配合"–rm"參數。

      –device=

      --device=[] Add a host device to the container

      –disable-content-trust

      --disable-content-trust=true Skip image verification

      跳過鏡像驗證。

      –dns

      --dns=[] Set custom DNS servers

      自定義DNS:

      $ docker run -it --dns=8.8.8.8 --rm ubuntu:14.04 /bin/bash root@b7a6f0e63e65:/# cat /etc/resolv.conf nameserver 8.8.8.8

      –dns-opt

      --dns-opt=[] Set DNS options

      –dns-search

      --dns-search=[] Set custom DNS search domains

      -e, --env

      -e, --env=[] Set environment variables

      自這義環境變量

      –entrypoint

      --entrypoint= Overwrite the default ENTRYPOINT of the image

      字面意思是進入點,而它的功能也恰如其意。

      An ENTRYPOINT allows you to configure a container that will run as an executable.

      它可以讓你的容器功能表現得像一個可執行程序一樣。

      使用下面的 ENTRYPOINT 構造鏡像:

      ENTRYPOINT ["/bin/echo"]

      那么 docker build 出來的鏡像以后的容器功能就像一個 /bin/echo 程序:

      比如我 build 出來的鏡像名稱叫 imageecho,那么我可以這樣用它:

      docker run -it imageecho “this is a test”

      這里就會輸出”this is a test”這串字符,而這個 imageecho 鏡像對應的容器表現出來的功能就像一個 echo 程序一樣。 你添加的參數“this is a test”會添加到 ENTRYPOINT 后面,就成了這樣 /bin/echo “this is a test” 。

      ENTRYPOINT ["/bin/cat"]

      構造出來的鏡像你可以這樣運行(假設名為 st):

      docker run -it st /etc/fstab

      這樣相當: /bin/cat /etc/fstab 這個命令的作用。運行之后就輸出 /etc/fstab 里的內容。

      –env-file

      --env-file=[] Read in a file of environment variables

      讀取設置環境變量的文件。

      –expose

      --expose=[] Expose a port or a range of ports

      告訴 Docker 服務端容器暴露的端口號,供互聯系統使用。

      $ docker run -it --expose=22 --rm ubuntu:14.04 /bin/bash

      –group-add

      --group-add=[] Add additional groups to join

      -h, --hostname

      -h, --hostname= Container host name

      設置容器主機名。

      $ docker run -it --hostname=web --rm ubuntu:14.04 /bin/bash

      進入容器后

      root@web:/#

      -i, --interactive=false

      -i, --interactive=false Keep STDIN open even if not attached

      保持標準輸入,常同 -t 一起使用來申請一個控制臺進行數據交互。

      –ipc

      --ipc= IPC namespace to use

      IPC(POSIX/SysV IPC) 命名空間提供了相互隔離的命名共享內存,信號燈變量和消息隊列

      共享內存可以提高進程數據交互速度。共享內存一般用在 database 和高性能應用(C/OpenMPI, C++/using boost libraries)上或者金融服務上。如果需要容器里面部署上述類型的應用,那么就應該在多個容器直接采取共享內存了。

      –kernel-memory

      --kernel-memory= Kernel memory limit

      內核內存,不會被交換到 swap 上。一般情況下,不建議修改,可以直接參考 docker 的官方文檔。

      -l, --label

      -l, --label=[] Set meta data on a container --label-file=[] Read in a line delimited file of labels

      –link

      --link=[] Add link to another container

      用于連接兩個容器。

      啟動容器1:web

      $ docker run --name web -d -p 22 -p 80 -it webserver:v1

      啟動容器2:ap1連接到web,并命名為apache

      $ docker run --name ap1 --link=web:apache -d -p 22 -p 80 -it webserver:v1

      –log-driver

      --log-driver= Logging driver for container --log-opt=[] Log driver options

      Docker 增加了對 json-file 型(默認)log driver 的 rotate 功能,我們可通過 max-size 和 max-file 兩個 –log-opt 來配置。

      比如:我們啟動一個 nginx 容器,采用 json-file日志引擎,每個 log 文件限制最大為 1 k,輪轉的日志個數為 5 個:

      docker run -d --log-driver=json-file --log-opt max-size=1k --log-opt max-file=5 --name webserver -p 9988:80 nginx

      有了 rotate,我們就不必擔心某個 container 的日志暴漲而將同 host 的其他 container 拖死了。

      –mac-address

      --mac-address= Container MAC address (e.g. 92:d0:c6:0a:29:33)

      設置容器的 mac 地址。

      -m, --memory

      -m, --memory= Memory limit

      設置容器使用的最大內存上限。默認單位為 byte,可以使用 K、G、M 等帶單位的字符串。

      默認情況下,容器可以使用主機上的所有空閑內存。

      設置容器的內存上限,參考命令如下所示:

      docker run -tid —name mem1 —memory 128m ubuntu:14.04 /bin/bash

      默認情況下,除了 –memory 指定的內存大小以外,docker 還為容器分配了同樣大小的 swap 分區,也就是說,上面的命令創建出的容器實際上最多可以使用 256 MB內存,而不是 128 MB內存。如果需要自定義 swap 分區大小,則可以通過聯合使用 –memory–swap 參數來實現控制。

      對上面的命令創建的容器,可以查看到在 cgroups 的配置文件中,查看到容器的內存大小為 128 MB (128×1024×1024=134217728B),內存和 swap 加起來大小為 256MB (256×1024×1024=268435456B)。

      #cat /sys/fs/cgroup/memory/docker/<容器的完整ID>/memory.limit_in_bytes 134217728 #cat /sys/fs/cgroup/memory/docker/<容器的完整ID>/memory.memsw.limit_in_bytes 268435456

      注意:

      執行上述命令時,命令行可能會輸出下面的警告:

      WARNING: Your kernel does not support swap limit capabilities, memory limited without swap.

      這是因為主機上默認不啟用 cgroup 來控制 swap 分區,可以參考 docker 官方的相應文檔,修改 grub 啟動參數。

      -memory-reservation

      --memory-reservation= Memory soft limit

      啟用彈性的內存共享,當宿主機資源充足時,允許容器盡量多地使用內存,當檢測到內存競爭或者低內存時,強制將容器的內存降低到 memory-reservation 所指定的內存大小。按照官方說法,不設置此選項時,有可能出現某些容器長時間占用大量內存,導致性能上的損失。

      –memory-swap

      --memory-swap= Total memory (memory + swap), '-1' to disable swap

      等于內存和 swap 分區大小的總和,設置為 -1 時,表示 swap 分區的大小是無限的。默認單位為 byte,可以使用 K、G、M 等帶單位的字符串。如果 –memory-swap 的設置值小于 –memory 的值,則使用默認值,為 –memory-swap 值的兩倍。

      –memory-swappiness

      --memory-swappiness=-1 Tuning container memory swappiness (0 to 100)

      控制進程將物理內存交換到 swap 分區的傾向,默認系數為 60。系數越小,就越傾向于使用物理內存。值范圍為 0-100。當值為100 時,表示盡量使用 swap 分區;當值為 0 時,表示禁用容器 swap 功能(這點不同于宿主機,宿主機 swappiness 設置為 0 也不保證 swap 不會被使用)。

      –name

      --name= Assign a name to the container

      為容器指定一個名字。

      $ docker run -it --name=web ubuntu:14.04 /bin/bash

      –net

      --net=default Set the Network for the container

      以下是網絡設置中常用的參數:

      none 關閉 container 內的網絡連接:

      將網絡模式設置為 none 時,這個 container 將不允許訪問任何外部 router。這個 container 內部只會有一個 loopback 接口,而且不存在任何可以訪問外部網絡的 outer。

      bridge 通過veth接口來連接 contianer 默認選項:

      Docker 默認是將 container 設置為 bridge 模式。此時在 host 上面講存在一個 docker0 的網絡接口,同時會針對 container 創建一對 veth 接口。其中一個 veth 接口是在 host 充當網卡橋接作用,另外一個 veth 接口存在于 container 的命名空間中,并且指向 container 的 loopback。Docker 會自動給這個 container 分配一個IP,并且將 container 內的數據通過橋接轉發到外部。

      host 允許 container 使用 host 的網絡堆棧信息:

      當網絡模式設置為 host 時,這個 container 將完全共享 host 的網絡堆棧。host 所有的網絡接口將完全對 container 開放。container 的主機名也會存在于 host 的 hostname 中。這時,container 所有對外暴露的 port 和對其它 container 的 link,將完全失效。

      Container:

      當網絡模式設置為 Container 時,這個 container 將完全復用另外一個 container 的網絡堆棧。同時使用時這個 container 的名稱必須要符合下面的格式:–net container:.

      比如當前有一個綁定了本地地址 localhost 的 redis container。如果另外一個 container 需要復用這個網絡堆棧,則需要如下操作:

      $ docker run -d --name redis example/redis --bind 127.0.0.1 # use the redis container's network stack to access localhost $ sudo docker run --rm -ti --net container:redis example/redis-cli -h 127.0.0.1

      –oom-kill-disable

      --oom-kill-disable=false Disable OOM Killer

      -P, --publish-all

      -P, --publish-all=false Publish all exposed ports to random ports

      對外映射所有端口。

      -p, --publish

      -p, --publish=[] Publish a container's port(s) to the host

      對外映射指定端口,如不指定映射后的端口將隨機指定。

      $ docker run –d -p 10022:22 -p 10080:80 -it webserver:v1

      使用 docker run 來啟動我們創建的容器。-d讓容器以后臺方式運行。使用多個-p來映射多個端口,將容器的22端口映射為本地的10022,80映射為10080。

      –pid

      --pid= PID namespace to use

      設置容器的 PID 模式。兩種:

      host: use the host's PID namespace inside the container. Note: the host mode gives the container full access to local PID and is therefore considered insecure.

      –privileged

      --privileged=false Give extended privileges to this container

      $ docker run -it --rm --privileged ubuntu:14.04 /bin/bash

      –read-only

      --read-only=false Mount the container's root filesystem as read only

      啟用后,容器的文件系統將為只讀。

      $ docker run -it --rm --read-only ubuntu:14.04 /bin/bash root@d793e24f0af1:/# touch a touch: cannot touch 'a': Read-only file system

      no,默認策略,在容器退出時不重啟容器

      on-failure,在容器非正常退出時(退出狀態非 0),才會重啟容器

      on-failure:3,在容器非正常退出時重啟容器,最多重啟 3 次

      always,在容器退出時總是重啟容器,當操作系統或 docker 服務重啟時,該容器總能隨系統啟動

      unless-stopped,在容器退出時總是重啟容器,但是不考慮在 Docker 守護進程啟動時就已經停止了的容器

      示例:

      $ docker run -it --restart=always ubuntu:14.04 /bin/bash

      –rm

      --rm=false Automatically remove the container when it exits

      當容器退出時,清除所有該容器的信息。

      –security-opt

      --security-opt=[] Security Options

      安全選項。

      –sig-proxy

      --sig-proxy=true|false Proxy received signals to the process (non-TTY mode only). SIGCHLD, SIGSTOP, and SIGKILL are not proxied. The default is true.

      –stop-signal

      --stop-signal=SIGTERM Signal to stop a container, SIGTERM by default

      -t, --tty

      -t, --tty=false Allocate a pseudo-TTY

      分配一個模擬終端,常和 -i 一塊使用.

      -u, --user

      -u, --user= Username or UID (format: [:]) Sets the username or UID used and optionally the groupname or GID for the specified command. The followings examples are all valid: --user [user | user:group | uid | uid:gid | user:gid | uid:group ] Without this argument the command will be run as root in the container.

      –ulimit

      –ulimit=[] Ulimit options

      –default-ulimit,docker daemon 的啟動參數,能夠指定默認 container ulimit 配置。如果此參數沒配置,則默認從 docker daemon繼承;

      –ulimit,docker run 的參數,能夠覆蓋 docker daemon 指定的 ulimit 默認值。如果此參數沒配置,則默認從 default-ulimit 繼承;

      $ docker run -it -d --ulimit nofile=20480:40960 ubuntu:14.04 /bin/bash

      -v, --volume

      -v, --volume=[] Bind mount a volume

      可以使用帶有 -v 參數的 docker run 命令給容器添加一個數據卷.

      添加數據卷/data1,會自動創建目錄

      $ docker run -it --name web -v /data1 ubuntu:14.04 /bin/bash root@fac11d44de3e:/# df -h /dev/disk/by-uuid/1894172f-589b-4e8b-b763-7126991c7fbb 29G 2.6G 25G 10% /data1 root@fac11d44de3e:/# cd /data1

      將宿主機的目錄添加到容器

      將宿主機的 /data_web 加載為容器 /data 目錄

      $ docker run -it --name web -v /data_web:/data ubuntu:14.04 /bin/bash

      –volumes-from

      --volumes-from=[] Mount volumes from the specified container(s)

      從其他容器掛載目錄。

      1.創建 dbdata 容器,并含有 /data 數據卷

      $ docker run -it -v /data --name dbdata ubuntu:14.04 /bin/bash

      2.創建 webserver1 掛載 dbdata 的數據卷

      $ docker run -it --volumes-from dbdata --name webserver1 ubuntu:14.04 /bin/bash

      -w, --workdir

      -w, --workdir= Working directory inside the container

      設置容器的工作目錄。

      $ docker run -it --workdir="/data" ubuntu:14.04 /bin/bash root@7868da4d2846:/data#

      相關系列:

      Docker 操作指南之常用操作篇

      Docker 操作指南之常用命令篇

      Docker 操作指南之運行命令篇

      Docker 操作指南之常見使用篇

      Docker 操作指南之使用示例篇

      Docker 操作指南之構建鏡像篇

      Docker 操作指南之 Compose 管理篇

      Docker 容器

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:瘋狂Java學習筆記(55)----------字節流與字符流
      下一篇:excel如何批量添加符號
      相關文章
      久久精品国产亚洲av麻豆小说 | 亚洲AV永久青草无码精品| 亚洲狠狠色丁香婷婷综合| 亚洲一级毛片免费看| 亚洲人成在久久综合网站| 亚洲性猛交xx乱| 亚洲国产成人久久99精品| 亚洲国产高清在线精品一区| 亚洲色偷偷av男人的天堂| 亚洲熟妇色自偷自拍另类| 亚洲自偷精品视频自拍| 中文字幕在线观看亚洲| 亚洲美女视频免费| 亚洲国产精品yw在线观看| 亚洲最新中文字幕| 亚洲av成人综合网| 亚洲熟妇AV一区二区三区宅男| 亚洲中文无码卡通动漫野外| 亚洲国产精品无码中文lv| 亚洲精品久久无码av片俺去也| 亚洲爆乳成av人在线视菜奈实 | 国产V亚洲V天堂无码| 亚洲国产第一站精品蜜芽| 亚洲国产第一页www| 亚洲精品国产专区91在线| 亚洲一区二区三区久久| 亚洲欧美日韩久久精品| 日日摸日日碰夜夜爽亚洲| 久久激情亚洲精品无码?V| 亚洲精品无码永久中文字幕| 久久精品国产99精品国产亚洲性色| 亚洲成色999久久网站| 亚洲码在线中文在线观看| 亚洲 欧洲 视频 伦小说| 亚洲av无码av在线播放| 国产日产亚洲系列最新| 久久国产精品亚洲综合| 亚洲欧洲高清有无| 亚洲欧美日韩中文无线码 | 成人亚洲网站www在线观看| 亚洲欧洲国产成人综合在线观看 |