美文网首页
Docker实战(一) Docker的安装

Docker实战(一) Docker的安装

作者: 工匠 | 来源:发表于2020-12-25 11:24 被阅读0次

    一、Docker的安装与部署


    Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看CentOS 版本

    uname -r
    

    Docker文件下载

    其他版本下载地址

    https://download.docker.com/linux/static/stable/x86_64/

    安装二进制包,解压到/usr/bin

    tar -zxf docker-18.09.9.tgz && cp docker/* /usr/bin
    

    创建Docker启动脚本

    vim /usr/lib/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
    ExecStart=/usr/bin/dockerd 
    ExecReload=/bin/kill -s HUP $MAINPID
    LimitNOFILE=infinity
    LimitNPROC=infinity
    TimeoutStartSec=0
    Delegate=yes
    KillMode=process
    Restart=on-failure
    StartLimitBurst=3
    StartLimitInterval=60s
    
    [Install]
    WantedBy=multi-user.target
    
    

    在/etc下创建名为docker的文件夹

    mkdir -p /etc/docker && vim /etc/docker/daemon.json
    

    daemon.json内容为

    registry-mirrors 为仓库地址 可更改 可使用外网地址https://registry.docker-cn.com


    { "registry-mirrors": ["https://sg0wj9mg.mirror.aliyuncs.com"],
      "log-driver":"json-file",
      "log-opts":{
          "max-size":"10m",
          "max-file":"10"
      }
    }
    

    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],

    指向docker仓库,可以更改可以删除

    删除registry-mirrors会指向dockerhub.io默认地址拉去镜像

    本地harbor仓库为http://172.16.45.9

    "log-opts":"max-size"限制单个容器日志大小的上限;"max-file":"3"意味着一个容器有三个日志,分别是json.log、json.log.1、json.log.2。即:容器最多有三个日志文件,每个日志文件最大为2M。

    需要注意的是:设置的日志大小规则,只对新建的容器有效

    参考文章

    https://blog.csdn.net/gdsfga/article/details/90599131

    https://www.cnblogs.com/sxdcgaq8080/p/10689223.html

    重新加载并测试启动

    systemctl daemon-reload && systemctl enable docker && systemctl restart docker.service
    

    执行docker version查看效果

    [root@localhost docker]# docker version
    Client:
     Version:       17.12.1-ce
     API version:   1.35
     Go version:    go1.9.4
     Git commit:    7390fc6
     Built: Tue Feb 27 22:13:43 2018
     OS/Arch:       linux/amd64
    
    Server:
     Engine:
      Version:      17.12.1-ce
      API version:  1.35 (minimum version 1.12)
      Go version:   go1.9.4
      Git commit:   7390fc6
      Built:        Tue Feb 27 22:20:43 2018
      OS/Arch:      linux/amd64
      Experimental: false
    

    查看网络是否有docker虚拟网卡

    ifconfig  或 ip a 命令
    查看网络是否有名为`docker0`虚拟网卡
    

    安装docker-compose

    docker-compose下载地址

    https://github.com/docker/compose/releases
    

    上传docker-compose到/usr/local/bin目录下并授执行权限

    mv docker-compose /usr/local/bin
    chmod +x /usr/local/bin/docker-compose
    ln -s /usr/local/bin/docker-compose /usr/bin/
    

    查看docker-compose版本:

    docker-compose -v
    

    输出结果

    docker-compose version 1.8.1, build 878cff1

    普通用户启动Docker

    需要在服务器添加docker

    groupadd docker
    

    将非root权限用户添加到docker用户组内

    usermod -aG docker user1 user2
                 组     用户1 用户2(添加多个用户到组里面,需重新启动docker)
    

    二、Docker常用命令

    查看容器信息

    docker ps (存活容器的信息)
    docker ps -a (所有已存在容器的信息)
    

    启动镜像

    docker run -dit --restart=always --name=string --net=host <imageID> 
    

    快速删除容器

    docker rm -f  container ID
    

    查看容器日志信息

    docker logs container ID  #查看所有日志信息
    docker logs -f container ID  #滚动查看所有日志信息
    docker logs --tail 100 container ID  #查看最后100行日志信息
    ocker logs -f --tail 100 container ID  #滚动查看最后100行日志信息
    

    进入Docker容器

    docker exec -it  容器ID /bin/bash 
    

    导出镜像

    先看一下docker有哪些镜像

    [root@localhost New Folder]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    vmware/photon       1.0                 4b481ecbef2a        15 months ago       130MB
    

    有个名为vmware/photon的镜像,版本为1.0那么导出命令为

    docker save -o photon.tar  vmware/photon:1.0
    命令        选项  导出的包名   镜像名 : 版本标签
    

    导入镜像

    photon.tar 放入任意位置执行

    docker load -i photon.tar
    命令         选项  读取加载的包名
    

    从宿主机拷文件到容器里面

    假设容器名为testtomcat,现在要将宿主机/opt/test.js文件拷贝到容器里面的/usr/local/tomcat/webapps/test/js路径下面

    docker cp /opt/test.js testtomcat:/usr/local/tomcat/webapps/test/js
    

    从容器里面拷文件到宿主机

    假设容器名为testtomcat,要从容器里面拷贝的文件路为:/usr/local/tomcat/webapps/test/js/test.js, 现在要将test.js从容器里面拷到宿主机的/opt路径下

    docker cp testtomcat:/usr/local/tomcat/webapps/test/js/test.js /opt
    
    
    #### 将docker容器提交为镜像
    
    docker commit -m  ""   -a  ""   容器ID(可以简写)  镜像名称
    
    -m  提示信息    -a  作者         
    
    如
    
    ```shell
    docker commit -m "tomcat+jdk环境" -a "ixiao9" qweq1231awqe tomcat:版本
    

    其他docker命令

    批量停止容器

    docker ps | xargs docker stop
    docker stop $(docker ps -a -q)
    

    批量删除容器

    docker ps -a | xargs docker rm
    

    批量删除镜像

    docker images | xargs docker rmi
    

    相关文章

      网友评论

          本文标题:Docker实战(一) Docker的安装

          本文链接:https://www.haomeiwen.com/subject/mjubnktx.html