zoukankan      html  css  js  c++  java
  • docker

    docker info 可以查看docker 的详细信息,版本/容器数/镜像数/仓库地址等

    [root@localhost home]# docker info
    Containers: 4
     Running: 3
     Paused: 0
     Stopped: 1
    Images: 4
    Server Version: 1.13.1
    Storage Driver: overlay2
     Backing Filesystem: xfs
     Supports d_type: true
     Native Overlay Diff: true
    Logging Driver: journald
    Cgroup Driver: systemd
    Plugins: 
     Volume: local
     Network: bridge host macvlan null overlay
    Swarm: inactive
    Runtimes: docker-runc runc
    Default Runtime: docker-runc
    Init Binary: /usr/libexec/docker/docker-init-current
    containerd version:  (expected: aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1)
    runc version: 9c3c5f853ebf0ffac0d087e94daef462133b69c7 (expected: 9df8b306d01f59d3a8029be411de015b7304dd8f)
    init version: fec3683b971d9c3ef73f284f176672c44b448662 (expected: 949e6facb77383876aeff8a6944dde66b3089574)
    Security Options:
     seccomp
      WARNING: You're not using the default seccomp profile
      Profile: /etc/docker/seccomp.json
     selinux
    Kernel Version: 3.10.0-1062.el7.x86_64
    Operating System: CentOS Linux 7 (Core)
    OSType: linux
    Architecture: x86_64
    Number of Docker Hooks: 3
    CPUs: 1
    Total Memory: 991 MiB
    Name: localhost.localdomain
    ID: P733:VG7D:QFFQ:DKM4:BIR7:IR3O:GBON:N6V4:3LJ4:5LAO:ZSR4:7JOV
    Docker Root Dir: /var/lib/docker
    Debug Mode (client): false
    Debug Mode (server): false
    Registry: https://index.docker.io/v1/
    WARNING: bridge-nf-call-iptables is disabled
    WARNING: bridge-nf-call-ip6tables is disabled
    Experimental: false
    Insecure Registries:
     127.0.0.0/8
    Registry Mirrors:
     registry.cn-hangzhou.aliyuncs.com
    Live Restore Enabled: false
    Registries: docker.io (secure)

    每个容器有相应的配置,如果要查看配置

    docker inspect containerid 可以查看 (docker inspect)可以查看 镜像或者 容器的元数据

    容器对应的配置文件在这里

    /var/lib/docker/containers/CONTAINERID/config.v2.json

    如果要修改配置,可以修改后重启docker来生效

    1  获取镜像

    docker pull  xxx

    获取镜像中默认仓库地址 是docer官方 hub

    如果要指定地址  docker pull 可以指定具体仓库地址

    docker pull registry.cn-hangzhou.aliyuncs.com/ubuntu-14-04/ubuntu14.04
    

    列出本地已下载的镜像

    docker images
    docker image ls

    删除镜像

    docker rmi imageid

    容器有修改后更新镜像

    docker commit -m="updated hs"  -a="zuozhe" 915c1ead02d9  test/ubuntu

    -m 是提交的描述信息

    -a 是作者

    915c1ead02d9   是容器的id

    test/ubuntu   指定要创建的目标镜像名

    2  启动容器

    docker run --name kang -it ubuntu /bin/bash

     docker run --name kang   -d ef3ecf68e1e2  /bin/bash

      -i   交互式操作

      -t  终端操作

      -d  后台daemon 运行

    3  进入容器

       docker exec -it 243c32535da7 /bin/bash

    4 查看各个容器

      docker container ls  运行态容器

      docker container ls -a   终止态容器

      docker ps -a   查看所有容器

      docker ps -n 5  查看最近创建的5个容器

      docker ps -a -q  只列出容器id

    5 导出容器

    docker export  containerid > ubn.tar

    导入容器

    cat ubn.tar |  docker import - test/ubuntu

    或者通过制定URL来导入

    docker import http://192.168.124.88:8000/ubn.tar  test/ubuntu2

    docker save -o  u3.tar  nginx:latest

    docker load  --input u3.tar

    用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,

    也可以使用 docker import 来导入一个容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历 史记录和元数据信息

    (即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,

    体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。

    docker save和docker export的区别
    对于Docker Save方法,会保存该镜像的所有历史记录
    对于Docker Export 方法,不会保留历史记录,即没有commit历史
    docker save保存的是镜像(image),docker export保存的是容器(container);
    docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;
    docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。

    6 删除清理容器

    docker rm -f contanerid

    docker container rm -f contanerid

     docker container prune 清理掉所有处于终止状态的容器

    主机与容器之间 共享数据/磁盘 

    数据卷 方式

    数据卷可以给一个或者多个容器使用的特殊目录,

    可以在容器之间共享或重用

    对数据卷的修改会立即生效

    对数据卷的更新不会影响镜像的使用

    数据卷会默认一直存在,及时容器被删除。

    创建数据卷
    docker volume create myvol

    删除数据卷

    docker volume rm myvol

    查看数据卷
    docker volume ls

    注意 centos 7 在操作挂载数据时 setenforce 0 将selinux 禁用,否则挂载的数据将没有权限访问

    创建容器时挂载数据卷 
    docker run -itd --name kang3 -v myvol:/web 37ef85ceaa9e /bin/bash

    注意挂载对象不能是根目录 /

    docker inspect containerid  在 Mounts 部分会看到具体挂载信息

            "Mounts": [
                {
                    "Type": "volume",
                    "Name": "myvol",
                    "Source": "/var/lib/docker/volumes/myvol/_data",
                    "Destination": "/web",
                    "Driver": "local",
                    "Mode": "z",
                    "RW": true,
                    "Propagation": ""
                }
            ],
    

      

    多个容器共享一个数据卷时候,一个容器内修改数据卷,另一个容器也会立即看到修改。

    挂载主机本地目录方式  mount

    将本地的/home/test 目录 挂载到 容器的 /testdir目录中

    docker run -itd  -P --name kang4   -v /home/test:/testdir  37ef85ceaa9e  /bin/bash

    docker inspect  containerid/name  中的Mounts可以看到 挂载信息

    注意与数据卷的挂载方式不同,这里的type 是  bind

           "Mounts": [
                {
                    "Type": "bind",
                    "Source": "/home/test",
                    "Destination": "/testdir",
                    "Mode": "",
                    "RW": true,
                    "Propagation": "rprivate"
                }
            ],

     挂载一个文件 

    docker run -itd  --name kang1  -v /root/1.sh:/root/2.sh 37ef85ceaa9e  /bin/bash

    实践1 

    docekr 安装nginx

    docker pull nginx
    
    docker run  --name nginx2 -p 80:80  -v /home/test:/usr/share/nginx/html/  -d 2073e0bcb60e

    进入容器中可以看到 nginx 的web目录是 /usr/share/nginx/html/

    挂载本地目录 /home/test 到 web目录, 映射主机端口 80 到 容器端口80   http 访问ip ,返回信息就是  /home/test 下的内容

  • 相关阅读:
    VS code 配置 PySide6的UI开发环境
    Python及PySide6学习网址
    NOIP2021模拟赛10.12 题解
    P2388 阶乘之乘 题解
    P3992 [BJOI2017]开车
    「NOIP2021模拟赛四 B」Polyline 题解
    P7115 [NOIP2020] 移球游戏 题解
    P7114 [NOIP2020] 字符串匹配 题解
    P3391 【模板】文艺平衡树 题解
    致夏天
  • 原文地址:https://www.cnblogs.com/jkklearn/p/12246885.html
Copyright © 2011-2022 走看看