zoukankan      html  css  js  c++  java
  • Docker 文档整理

    Docker 文档

    Docker 安装

    Centos 安装

    离线安装

    # 先下载安装包
    wget https://download.docker.com/linux/static/stable/x86_64/ 
    # 上传文件并解压
    tar -xvf docker-18.06.1-ce.tgz 
    # 复制
    cp docker/* /usr/bin/
    # 启动docker
    dockerd &
    
    # 增加docker.service文件,将docker注册为services服务
    vi /etc/systemd/system/docker.service
    # 文件内容
    [Unit]
    Description=Docker Application Container Engine
    Documentation=https://docs.docker.com
    After=network-online.target firewalld.service
    Wants=network-online.target
      
    [Service]
    Type=notify
    # the default is not to use systemd for cgroups because the delegate issues still
    # exists and systemd currently does not support the cgroup feature set required
    # for containers run by docker
    ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1
    ExecReload=/bin/kill -s HUP $MAINPID
    # Having non-zero Limit*s causes performance problems due to accounting overhead
    # in the kernel. We recommend using cgroups to do container-local accounting.
    LimitNOFILE=infinity
    LimitNPROC=infinity
    LimitCORE=infinity
    # Uncomment TasksMax if your systemd version supports it.
    # Only systemd 226 and above support this version.
    #TasksMax=infinity
    TimeoutStartSec=0
    # set delegate yes so that systemd does not reset the cgroups of docker containers
    Delegate=yes
    # kill only the docker process, not all processes in the cgroup
    KillMode=process
    # restart the docker process if it exits prematurely
    Restart=on-failure
    StartLimitBurst=3
    StartLimitInterval=60s
      
    [Install]
    WantedBy=multi-user.target
    
    # 给docker.service添加执行权限
    chmod +x /etc/systemd/system/docker.service
    # 重载配置文件
    systemctl daemon-reload
    # 设计开机自启
    systemctl enable docker.service
    

    在线安装

    # 更新yum
    sudo yum update
    # 安装工具包
    yum -y install yum-utils 
    # 设置yum阿里云镜像源
    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    # 安装docker 社区版
    sudo yum install docker-ce
    # 查看docker版本
    docker -v
    
    # 设置docker镜像加速
    vi /etc/docker/daemon.json
    {
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
    }
    # 其他镜像源地址
    ## Docker中国区官方镜像
    https://registry.docker-cn.com
    ## 网易
    http://hub-mirror.c.163.co
    ## ustc 
    https://docker.mirrors.ustc.edu.cn
    ## 中国科技大学
    https://docker.mirrors.ustc.edu.cn
    ## 或者在aliyun容器生成加速地址
    https://cr.console.aliyun.com/
    

    Docker 启动

    sudo systemctl start docker
    

    Docker 停止

    sudo systemctl stop docker
    

    Docker 重启

    sudo systemctl restart docker
    

    Docker 服务状态查看

    systemctl status docker
    

    Docker 版本查看

    docker version
    docker -v
    

    Docker详细信息

    docker info
    

    Docker 镜像

    搜索镜像

    docker search <镜像名称:比如nginx>
    

    拉取镜像

    docker pull <镜像名称:比如nginx>
    

    查看镜像列表

    docker images
    

    删除镜像

    docker rmi <镜像id/镜像名称>
    

    设置镜像标签

    docker tag <镜像id> <镜像名称/新的标签名>
    

    保存Docker 镜像到本地

    方法一:docker save <镜像名称>  -o  <导出地址>
    方法二:docker save 镜像名称>/root/镜像名称.tar
    # docker save nginx  -o  /home/jruing/docker/nginx.tar
    

    加载Docker镜像

    方法一:docker load -i <本地镜像包地址>
    方法二:docker load<ubuntu.tar
    # docker load -i /home/jruing/docker/nginx.tar  
    

    Docker 容器

    启动新的容器

    docker run <option> <容器id/容器名称> <command>
    
    option 参数
    -i --interactive=false:允许你对容器内的标准输入 (STDIN) 进行交互,	通常与-t同时使用
    -t --tty=false:在新容器内指定一个伪终端或终端,通常与-i同时使用
    -d --detach=false:指定容器运行于前台还是后台,并且返回该容器id
    -p --publish=[]:指定端口映射(宿主机端口:容器端口)
    -P --publish-all=false:随机端口映射
    -v:绑定一个卷
    -u --user="":指定容器的用户
    --name="":为该容器指定一个名称,后续可以通过名称对容器进行管理
    --privileged=false:指定容器是否为特权容器,特权容器拥有所有的		capabilities
    --restart="no":指定容器停止后的重启策略:
    	no:容器退出时不重启
    	on-failure:容器故障退出(返回值非零)时重启
    	always:容器退出时总是重启
    --rm=false:容器停止后自动删除该容器(不支持以docker run -d启动的容器)
    --link=[]:指定容器间的关联,使用其他容器的IP、env等信息
    --dns=[]:指定容器的dns服务器
    -w, --workdir="":指定容器的工作目录
    

    停止容器

    docker stop <容器id/容器名称>
    

    重启容器

    docker restart <容器id/容器名称>
    

    启动已停止容器

    docker start <容器id/容器名称>
    

    查看所有容器

    docker ps -a
    

    查看正在运行的容器

    docker ps
    

    列出所有容器id

    docker ps -aq
    

    删除所有容器

    docker rm $(docker ps -aq)
    

    进入容器

    docker exec -it <容器id/容器名称> /bin/bash
    

    主机和容器之间复制文件

    # 将宿主机文件拷贝到容器内部
    docker cp 宿主机文件路径 容器id/容器名称:容器目录
    # 将容器内部文件拷贝到宿主机
    docker cp 容器id/容器名称:容器目录 宿主机文件路径
    

    将容器中的服务挂起到后台(针对于手动启动容器中的服务)

    先ctrl+p 在ctrl+q
    

    容器启动时自启服务

    # 例子
    docker run -itd python3 /bin/bash /tmp/aaa.sh(脚本路径)
    

    DockerFile构建

    FROM

    初始化新的构建,为后面的指令设置基本镜像
    

    WORKDIR

    设置 RUN CMD COPY ADD ENTRPOINT指令的工作目录,若指定的目录不存在则会自动创建
    

    RUN

    运行命令
    

    待更新。。。。

  • 相关阅读:
    Java 常用正则表达式
    MySql数据库备份的几种方式
    分布式系统一致性算法(Paxos)
    桥接模式
    vnc mirror driver
    VC Mirror Driver显示虚拟驱动经典开发
    基于MirrorDriver的录屏技术
    基于GDI和D3D的抓屏技术
    Various methods for capturing the screen
    IDE Goland DEBUG报错(could not launch process: decoding dwarf section info at offset 0x0: too short)
  • 原文地址:https://www.cnblogs.com/jruing/p/13739477.html
Copyright © 2011-2022 走看看