docker 安装

linux环境:centos7

1. 安装docker

   1.1 安装依赖
         yum install -y yum-utils device-mapper-persistent-data lvm2

   1.2 配置镜像源, 以下二选一
         [官方源] yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
         [阿里云源] yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    1.3 安装docker
          yum -y install docker-ce docker-ce-cli containerd.io

    1.4 查看安装结果(显示版本相关信息则安装成功)
          docker -v
          docker version

    1.5 修改资源路径(推荐)
          mkdir /etc/docker
          vi /etc/docker/daemon.json
             {
                "data-root": "/home/data"
             }

    1.6 自启、启动
          systemctl enable docker
          systemctl restart docker

2. 运行容器

    2.1 拉取镜像
          docker pull [image_name]

    2.2 运行容器
          docker run -dit -p 8080:8080 --name [container_name] --net=[network_name] --privileged=true -v /home/:/www/ [images] /bin/bash
          -d    # 后台运行并返回容器ID
          -i     # 以交互式模式运行容器,通常和-t一起使用
          -t    # 为容器分配一个伪输入终端, 通常与-i一起使用
          -p   # 端口映射,[宿主机端口]:[容器端口]
          --name="container_name"    # 制定容器名称
          -v   # 挂载目录,[宿主机目录]:[容器目录]
          -m  # 设置容器使用内存最大值
          --net="my_net"      # 指定容器网络,支持:bridge/host/none/container四种类型
          --privileged=true   # 完整的容器功能(特权),root权限
          --env-file=[]           # 从指定文件读入环境变量
          --cpuset="0-2" or --cpuset="0,1,2"    # 绑定容器到指定CPU运行

          示例(mysql5.7):

          docker run -dit -p 3306:3306 --name mysql5.7 -e MYSQL_ROOT_PASSWORD=12345678 --privileged=true -v /home/data/mysql5.7/conf:/etc/mysql  -v /home/data/mysql5.7/logs:/var/log/mysql -v /home/data/mysql5.7/data:/var/lib/mysql --restart=always mysql:5.7

 3. docker网络(容器之间访问)

     docker network create network_name   # 创建一个网络
     docker network inspect network_name  # 查看网络的详细信息
     docker network ls                                   # 列出当前系统中的所有网络
     docker network disconnect                    # 从网络中断开一个容器
     docker network rm                                 # 删除一个或多个网络
     docker network prune                            # 删除所有未使用的网络
     docker network connect [OPTIONS] [network_name] CONTAINER # 将已有容器连接到一个网络

     --alias              # 为容器添加网络范围的别名
     --ip                  # 指定IP地址
     --ip6                # 指定IPv6地址
     --link               # 添加链接到另一个容器
     --link-local-ip  # 添加容器的链接本地地址

     示例:
     docker network create my_net
     docker network connect --alias mysql5.7 my_net mysql5.7

 4. 容器与宿主机时间同步

     docker cp /usr/share/zoneinfo/Asia/Shanghai [CONTAINER]:/etc/localtime

 5. 对现有容器添加或修改端口映射

     systemctl stop docker
     vi  /home/data/containers/[hash_of_the_container]/hostconfig.json
             ...."PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"8080"}]}....           # "PortBindings"这里 80 是容器端口, 8080 是宿主机端口
        vi /home/data/containers/[hash_of_the_container]/config.v2.json
             # 在"Tty": true, 前面添加一个配置项 "ExposedPorts":{"80/tcp":{}},若已有ExposedPorts,则追加 "81/tcp":{}
        systemctl start docker

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值