悠然小屋

不自重者,取辱。不自长者,取祸。不自满者,受益。不自足者,博闻!

«   2020年10月   »
1234
567891011
12131415161718
19202122232425
262728293031
搜索
Tags列表
最新留言
    最近发表
    文章归档
    友情链接

      docker搭建及优化步骤

      1、在安装docker之前,首先移除系统中已有的旧版本的docker


        yum -y remove docker           


      2、安装yum-utils管理yum源


           (1)安装yum-utils

                    yum install -y yum-utils          

        

          (2)新增yum源

                   ##官网地址

           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   

      3、建立元数据缓存

            yum makecache fast      


      4、安装最新版本的docker

            yum -y install docker-ce  


      5、配置docker存储路径, 

      vi /usr/lib/systemd/system/docker.service


      ExecStart=/usr/bin/dockerd --graph=/data/docker

      配置后要重启docker


      6、配置docker加速

      vi /etc/docker/daemon.json

      加入下面的数据:

      docker-cn镜像:

      {

        "registry-mirrors": ["https://registry.docker-cn.com"]

      }


      https://www.docker-cn.com/registry-mirror


      如果你是腾讯云的服务器那么请加入:

      {

        "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]

      }

      阿里云的服务器请查看:"registry-mirrors": ["https://wixr7yss.mirror.aliyuncs.com"]

      wq保存退出:

      执行命令生效:

      systemctl daemon-reload

      systemctl restart docker



      7、安装docker-compose

      cd /usr/local/bin/

      wget https://github.com/docker/compose/releases/download/1.14.0-rc2/docker-compose-Linux-x86_64

      rename docker-compose-Linux-x86_64 docker-compose docker-compose-Linux-x86_64

      =============================================

      curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

      =======================================

      然后修改目录权限可执行,不然后续docker-compose up命令会报错:


      chmod +x /usr/local/bin/docker-compose


       再通过docker-compose version命令进行查看


      8、配置 Docker 镜像站

      curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io


      9、设置开机启动 服务

      开机启动docker:

      systemctl enable docker.service


      docker-compose启动: 

      vim /etc/rc.d/rc.local/usr/local/bin/docker-compose -f /yml文件存放目录/docker-compose.yml up -d


      docker-compose up -d


      10、对已经创建的docker container设置开机自启动

      docker update --restart=always <container ID 根据docker ps 显示出来的容器id>


      11、docker常用命令操作

      案例1、运行一个简单的容器,其中需要包含控制台管理

      [root@localhost ~]# docker run -i -t centos7.21

      这个容器一执行就会进入到默认的线程”/bin/bash”,直接进入控制台操作。当退出控制后后,容器会被终止。


      案例2、运行一个在后台执行的容器,同时,还能用控制台管理

      [root@localhost ~]# docker run -d -i -t centos7.21

       这个容器一执行,会自动执行默认的线程”/bin/bash”,但是不会让你马上进入控制台操作。将会在后台执行,用docker ps 可以看到当前运行的控制台。进入容器可是使用docker attach“Container name or id”。

       

      案例3、运行一个带命令在后台不断执行的容器,不直接展示容器内部信息

      [root@localhost ~]# docker run -d centos7.2 ping www.baidu.com1

       这个容器将永久在后台执行,因为ping这个线程不会停止。除非你停止了ping的线程。


      案例4、运行一个在后台不断执行的容器,同时带有命令,程序被终止后还能重启继续跑,还能用控制台管理

      [root@localhost ~]# docker run -d --restart=always centos7.2  ping www.baidu.com1

       这个容器将永久在后台执行,因为ping这个线程不会停止。如果你把ping这个线程终止了,那么容器会重启继续执行ping功能

      案例5、我们需要为容器指定一个名称

      [root@localhost ~]# docker run -d --name=server-db centos7.2 /usr/bin/mysql_safe -d1

       这时候我们这个容器的名称为server-db,同时激活了数据库mysql的后台线程,让它不断的跑,这时候我们的容器也不会被关闭。


      案例6、我们需要让server-http容器连接server-db容器


      [root@localhost ~]#docker run -d --name=server-http --link=server-db  centos7.2 /usr/bin/httpd --DFOREGROUND1

      这时候,我们执行了apache的服务器让它不断的在后台执行,同时,在php里配置mysql的服务器名称为”server-db”,直接用server-db命名就可以了。不需要输入ip地址之类的。我们的server-http指定连接了server-db。server-db在server-http里会被当做一个DNS解析来获取相应的连接ip。


      案例7、我们要将server-db,server-http的端口暴露出去,让大家访问

      [root@localhost ~]#docker run -d --name=server-db -p 3306:3306 centos6.8-mysql /usr/bin/mysql_safe –d  1

      这时候我们指定了服务器宿主机的3306端口映射到容器的3306端口,暴露出去。

      [root@localhost ~]#docker run -d --name=server-http --link=server-db  -p 8080:80centos6.8-httpd /usr/bin/httpd --DFOREGROUND1

      这时候我们指定了服务器宿主机的8080端口映射到容器80端口,暴露出去。


      案例8、我们要将宿主机的数据库目录/server/mysql-data挂载到server-db上

      [root@localhost ~]#docker run -d --name=server-db -p 3306:3306 -v /server/mysql-data:/mysql-data centos6.8-mysql /usr/bin/mysql_safe –d  1

      这时候,你会发现,在server-db根目录下你会发现有一个新的文件夹mysql-data,同时里面的文件内容和宿主机下/server/mysql-data一样。


      案例9、我们希望一个容器在它的进程结束后,立马自动删除。

      [root@localhost ~]# docker run -ti --rm centos7.21

      这时候我们进入了容器的控制台,当我们在容器内部exit退出控制台的时候,容器将被终止,同时自动删除。



      12、

      查看 docker端口映射占用情况

      netstat -nlp |grep docker-proxy|awk '{print $4}'|sort


      13、Docker修改IP地址方法

      查看Docker IP:    ifconfig docker0


      修改IP地址 [切勿与宿主机同网段]

      vi /etc/docker/daemon.json

      增加以下内容()

      { 

      "registry-mirrors": [

           "https://docs.docker.com"

        ], 

        

      "bip": "172.17.10.1/16"

      }


      重启Docker服务

      service docker restart


      docker监控

      docker stats


      识别Docker容器的状态

      docker ps –a

      docker pull 拉取或者更新指定镜像
      docker push 将镜像推送至远程仓库
      docker rm 删除容器
      docker rmi 删除镜像
      docker images 列出所有镜像
      docker ps 列出所有容器

      docker cp 命令用于容器与主机之间的数据拷贝
      主机到容器:
      docker cp /www 96f7f14e99ab:/www/
      容器到主机:
      docker cp 96f7f14e99ab:/www/tmp/

      docker镜像内的文件互相拷贝1、将本地文件拷贝到docker 镜像内
      
       docker cp 本地路径 容器Id或name:容器目录
      
       docker cp /Users/howey/Documents/apache-maven-3.5.2/ containername:/opt
       
      
       2、将docker内文件拷贝到本地文件夹内
      
        docker cp 容器Id或name:本地路径 镜像路径
      
        docker cp containername:/Users/howey/Documents/apache-maven-3.5.2 /opt/



      或许你会感兴趣的文章——

      Powered By Z-BlogPHP 1.5.2 Zero & Theme by Washun Copyright Csuper All Rights Reserved. 湘ICP备18017694 网络是工具,不是玩具 QQ:493754678 [登录]