首页 > 其他分享 >docker搭建及优化步骤

docker搭建及优化步骤

时间:2024-10-27 17:59:47浏览次数:1  
标签:容器 compose -- 步骤 db server docker 搭建

docker搭建及优化步骤

2020-09-13

2cf5e0fe9925bc31137974de55df8db1cb13704b.jpg

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/

 

 

标签:容器,compose,--,步骤,db,server,docker,搭建
From: https://www.cnblogs.com/gnz48/p/18508678

相关文章

  • 【内网攻防】内网穿透隐秘隧道搭建
    没有数值,我只看到了努力和汗水内网穿透Stowaway(多级代理)Stowaway穿透访问第二层内网网络拓扑图首先攻击机(172.22.0.162)运行Stowawayadmin节点在边界机上使用rdyx0上传agent在边界机上使用rdyx0运行agent此时攻击机收到新的连接–reconnect2表......
  • SpringCloud Alibaba 01 (微服务的概念理解,微服务的环境搭建,微服务的服务注册中心Nacos
    目录了解微服务常用的概念了解项目架构演变掌握微服务环境搭建掌握微服务治理组件-NacosDiscovery掌握微服务负载均衡调度组件-Ribbon掌握微服务远程调度组件-Feign掌握微服务流控容错组件-Sentinel掌握微服务网关组件-Gateway掌握微服务链路追踪组件-Sleuth&Zi......
  • 04. 微服务 - 示例搭建 - LoadBalancer(一)
    前言基于Eureka示例搭建时的代码hosts增加域名dingsu-300两种设备服务提供者(软交换-sip、300)各两个节点,用于测试负载路由情况负载均衡概念依据各项指标(可使用硬件资源、节点数、请求速率、业务场景等)进行权重考量,将负载(访问请求、工作任务等)分摊到多个服务节点上,从而......
  • 我有三台ubuntu服务器,手把手教我从0搭建HBase,然后往里存一些数据。
    好的,我们可以一步步来搭建一个基本的HBase集群,并在里面存储一些数据。这里的步骤包括在三台Ubuntu服务器上配置HBase所需的依赖、安装HBase、配置和启动集群、测试存储和查询数据。假设这三台服务器的IP地址分别为192.168.1.101、192.168.1.102和192.168.1.103,其中第......
  • Nuxt3搭建的社区网站-弦圈
    Nuxt.js是一个基于Vue.js的服务端渲染框架,相较于Vue的单页应用,Nuxt的SSR应用对SEO友好。然而因为服务端渲染的缘故,用Nuxt.js开发要比单纯Vue.js开发要艰难得多,一是奇怪的bug和报错;二是部分API只能在浏览器端调用,不能在服务端使用。如今经过六个月的艰难开发,我的第一个Nuxt......
  • Docker常用命令【MacOS版】
    #查看当前dockerdaemon配置信息dockerinfo#查看当前镜像imagesdockerimages#查看当前运行的实例dockerps#docker运行某一个镜像,指定端口和别名dockerrun--namees8-p9200:9200-itelasticsearch:8.8.0dockerrun--name[别名]-p端口:端口-it[镜像......
  • 使用VitePress+Github Pages搭建VitePress网站(亲测有效)
    1.安装Termux请自行到GithubReleases下载地址下载。此处提供加速链接地址:gh.llkk.cc加速服务2.安装软件包执行命令换源termux-change-repo选择第一项回车–>第三项回车安装软件pkgigitnodejsvimopenssh2.5配置ssh连接秘钥(可选)为了方便之后上传MarkDown......
  • Java8在Docker里性能不好是真的吗
    文章开头段落:Java8在Docker环境下性能不好的说法存在一定的误解。这个问题本质上与Java虚拟机(JVM)对容器的资源限制识别能力、容器化技术的成熟度、以及Docker版本和配置有关。在Java8的早期版本中,JVM对于运行在Linux容器内存和CPU的限制识别确实存在问题,这会导致Java应用在Docke......
  • 如何搭建一套完整的数据指标体系
    ###如何搭建一套完整的数据指标体系在构建一套完整的数据指标体系时,关键在于理解业务目标、确定关键绩效指标(KPI)、确保数据质量和可访问性、以及建立定期审查机制。首先,要深入理解业务目标,这是构建指标体系的基础。接着,根据业务目标确定能够反映业务进展和成果的关键绩效指标......
  • AUTOSAR自学之路01-开发环境搭建
    本人最近在自学AUTOSAR,这个系列用来记录学习过程的心得,并分享个人经验给大家参考。本期记录AUTOSAR开发环境的搭建以及开发流程。硬件环境S32K144开发板、12VDC电源适配器、JLink调试器(v9)、CAN盒(支持CANoe)硬件环境软件环境1.首先需要购买Vector的keyman/Dongle2.然后A......