首页 > 其他分享 >Docker小用

Docker小用

时间:2023-11-13 16:31:55浏览次数:30  
标签:小用 -- 0.0 redis 6379 172.38 Docker docker

docker run -d --name elasticsearch  -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx256m"  elasticsearch   
                                                                                                 /// ES_JAVA_OPTS:似乎可以随便命名
docker rm $(docker ps -aq)   删除所有容器,必要时加 -f 强制删除

docker rmi $(docker images -aq) 删除所有镜像

docker stats 074adc0228f8    查看容器的CPU使用情况

docker run -d -p 8088:9000 \--restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer      docker的可视化界面

docker exec -it 21c4ea23b673 /bin/bash   进入容器

docker volume ls  查看卷

docker inspect 750927e3bcd1  查看容器信息

docker run -d -p 90:80 -v nginx:/opt/nginx nginx   具名挂载
docker run -d -p 90:80 -v /opt/nginx nginx         匿名挂载
docker run -d -p 90:80 -v /home/nginx:/opt/nginx nginx   指定目录挂载   推荐

touch dockerfile  新建文件

docker run -it --name centos01 test/centos
docker run -it --name centos02 --volumes-from centos01 test/centos

docker build -f mydockerfile-centos -t mycentos .   构建镜像
docker build -t mytomcat .   构建镜像文件为官方文件名:Dockerfile 可以简写

docker images   与history搭配使用
docker history 2622e6cca7eb   查看镜像构建过程
docker tag 655720e12264 lvym777/tomcat:1.0    lvym777是DockerHub账号
docker push lvym777/tomcat:1.0

docker save -o test.tar cd645f5a4769   将镜像cd645f5a4769 生成test.tar/zip/GZ等
docker load -i test.zip/tar/GZ    导入镜像

docker run -d -P tomcat   随机分配端口
docker run -d -p tomcat   报错
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet  自定义网络
-----------------------一般这样命名桥接-----子网掩码 /16表示可以有65535个----网关一般如此--网络名 
--------------------------------------------------/24表示可以有255个 --------------------------
docker network ls  查询网络列表
docker network inspect mynet  查看网络详情

docker run -d -P --name tomcat-net01 --net mynet tomcat     将容器加入自己定义的网络
docker run -d -P --name tomcat-net02 --net mynet tomcat

                docker network inspect mynet
                            |
                            |

 

Docker小用_redis

 

 

Docker小用_redis_02

 

 

Docker小用_tomcat_03

 

Docker小用_redis_04

 

 

Docker小用_tomcat_05

 

 docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

 [root@lvym ~]# docker network connect mynet tomcat01
[root@lvym ~]# docker exec -it tomcat01 ping tomcat-net01
PING tomcat-net01 (192.168.0.2) 56(84) bytes of data.
64 bytes from tomcat-net01.mynet (192.168.0.2): icmp_seq=1 ttl=64 time=0.099 ms
64 bytes from tomcat-net01.mynet (192.168.0.2): icmp_seq=2 ttl=64 time=0.174 ms
64 bytes from tomcat-net01.mynet (192.168.0.2): icmp_seq=3 ttl=64 time=0.162 ms
[root@lvym ~]# docker exec -it tomcat-net01 ping tomcat01
PING tomcat01 (192.168.0.4) 56(84) bytes of data.
64 bytes from tomcat01.mynet (192.168.0.4): icmp_seq=1 ttl=64 time=0.084 ms
64 bytes from tomcat01.mynet (192.168.0.4): icmp_seq=2 ttl=64 time=0.154 ms
64 bytes from tomcat01.mynet (192.168.0.4): icmp_seq=3 ttl=64 time=0.054 ms
 64 bytes from tomcat01.mynet (192.168.0.4): icmp_seq=4 ttl=64 time=0.071 ms


不同网段是不可以相互通信,tomcat01在 docker默认的网卡docker0中,tomcat-net01在自定义的网卡中,他们是不能相互通信,

通过docker network connect **** 命令把tomcat01加入到自定义的网卡,这样tomcat01在docker0,自定义的网卡,里都有IP

 ----------------------------------DockerCompose-------------------------

 安装

yum -y install epel-release

yum -y install python-pip

pip install--upgrade pip

pip install docker-compose

docker-compose version

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

---------------------redis三主三从---------------------------------------------------------------

docker network create redis --subnet 172.38.0.0/16

利用脚本写六个配置文件

for port in $(seq 1 6); \
do \
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.conf
cat << EOF >/mydata/redis/node-${port}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.38.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done

拉取并启动redis

docker run -p 6371:6379 -p 16371:13679 --name redis-1 \
-v /mydata/redis/node-1/data:/data \
-v /mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.11 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

docker run -p 6372:6379 -p 16372:13679 --name redis-2 \
-v /mydata/redis/node-2/data:/data \
-v /mydata/redis/node-2/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.12 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

........

docker run -p 637${port}:6379 -p 1637${port}:13679 --name redis-${port} \
-v /mydata/redis/node-${port}/data:/data \
-v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.1${port} redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf; \

查看启动

[root@lvym ~]# docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED              STATUS              PORTS                                              NAMES
eec266e38510        redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   3 seconds ago        Up 2 seconds        0.0.0.0:6376->6379/tcp, 0.0.0.0:16376->13679/tcp   redis-6
b05e247481ac        redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   35 seconds ago       Up 35 seconds       0.0.0.0:6375->6379/tcp, 0.0.0.0:16375->13679/tcp   redis-5
2911e0e1c29d        redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:6374->6379/tcp, 0.0.0.0:16374->13679/tcp   redis-4
d2de98b48e8a        redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:6373->6379/tcp, 0.0.0.0:16373->13679/tcp   redis-3
0c8717cf691a        redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   3 minutes ago        Up 3 minutes        0.0.0.0:6372->6379/tcp, 0.0.0.0:16372->13679/tcp   redis-2
a4fc26eb694e        redis:5.0.9-alpine3.11   "docker-entrypoint.s…"   4 minutes ago        Up 4 minutes        0.0.0.0:6371->6379/tcp, 0.0.0.0:16371->13679/tcp   redis-1
进入容器

[root@lvym ~]# docker exec -it redis-1 /bin/sh
/data # ls
appendonly.aof  nodes.conf
配置集群

/data # redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 172.38.0.15:6379 to 172.38.0.11:6379
Adding replica 172.38.0.16:6379 to 172.38.0.12:6379
Adding replica 172.38.0.14:6379 to 172.38.0.13:6379
M: a792a6c9ee085b880d4721f176d20a14dc96d93c 172.38.0.11:6379
   slots:[0-5460] (5461 slots) master
M: 0cbdb29c2e70dd460fa0eb303d9f9540ad8abd9e 172.38.0.12:6379
   slots:[5461-10922] (5462 slots) master
M: aa2fda8fa96ecbff1ab9da3ceea757f68c24a542 172.38.0.13:6379
   slots:[10923-16383] (5461 slots) master
S: 4a01710d60dfdc2a0e301ddac5e6e6daf8b45a5f 172.38.0.14:6379
   replicates aa2fda8fa96ecbff1ab9da3ceea757f68c24a542
S: 20fa296ea250b1e5080c8deec20c71a55dafd273 172.38.0.15:6379
   replicates a792a6c9ee085b880d4721f176d20a14dc96d93c
S: 7997346a77f8f4d0bbc05585480f1da27e0d81b0 172.38.0.16:6379
   replicates 0cbdb29c2e70dd460fa0eb303d9f9540ad8abd9e
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated

............

登录集群

[OK] All 16384 slots covered.
/data # redis-cli -c
127.0.0.1:6379> cluster nodes
4a01710d60dfdc2a0e301ddac5e6e6daf8b45a5f 172.38.0.14:6379@16379 slave aa2fda8fa96ecbff1ab9da3ceea757f68c24a542 0 1593489128518 4 connected
0cbdb29c2e70dd460fa0eb303d9f9540ad8abd9e 172.38.0.12:6379@16379 master - 0 1593489128000 2 connected 5461-10922
7997346a77f8f4d0bbc05585480f1da27e0d81b0 172.38.0.16:6379@16379 slave 0cbdb29c2e70dd460fa0eb303d9f9540ad8abd9e 0 1593489128926 6 connected
20fa296ea250b1e5080c8deec20c71a55dafd273 172.38.0.15:6379@16379 slave a792a6c9ee085b880d4721f176d20a14dc96d93c 0 1593489128518 5 connected
a792a6c9ee085b880d4721f176d20a14dc96d93c 172.38.0.11:6379@16379 myself,master - 0 1593489128000 1 connected 0-5460
aa2fda8fa96ecbff1ab9da3ceea757f68c24a542 172.38.0.13:6379@16379 master - 0 1593489129941 3 connected 10923-16383
........

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:小用,--,0.0,redis,6379,172.38,Docker,docker
From: https://blog.51cto.com/u_16253752/8346064

相关文章

  • docker 系列
    docker系列目录docker系列一.docker定义1nameSpnce命名空间2cgroup控制组3为什么使用容器二.docker安装三.docker初步使用命令3.1镜像相关3.2容器相关3.3第一个项目3.4存储卷挂载四.dockerfile编写4.1基础语法4.2简单使用一.docker定义1nameSpnce命名......
  • docker Nginx ssl 配置
     nginx版本:1.21.1证书获取阿里云:_xxxx.xxxxx.com.pem、_xxxx.xxxxx.key域名:xxxx.xxxxx.com一、ssl 443端口二、非443端口 nginx.confserver{#监听端口,切记,12000后面必须加ssllisten12000ssl;#域名server_namexxxx.x......
  • macOS 通过 docker 安装 redis 集群
    安装集群macOS通过docker来进行安装redis机群,解决开发环境临时使用的问题,完成本地redis集群环境搭建。安装步骤如下:查询主机ip信息,命令如下:ifconfig删除容器信息,如果步骤执行错误了,可以删除容器,然后重新执行第3步dockerrm-fredis-30001dockerrm-fredis-30002doc......
  • 使用Dockerfile构建镜像
    一、前言场景需求:例如运行一个nginx容器,容器起来后,通常不会运行在默认配置下,那因此,我们通常需要去改一改它的配置文件或者定义模块化配置文件,然后启动服务。那为什么,nginx的默认配置不符合我们的需要呢?很显然,不同的生产场景所需要用到的配置参数各个相同,因此,对方只能用一个默认......
  • x86机器上运行arm64 docker
    DockerHub上可以找到各种非x86_64平台的镜像,但是在x86上直接运行会报错:panic:standard_init_linux.go:175:execuserprocesscaused“execformaterror”[recovered]在x86_64平台上缺少运行arm32v7的Python解释器所需要的“环境依赖”,值得庆幸的是在Linux上我......
  • docker 部署 rabbitmq集群
    rabbitmq集群:pull:dockerpullrabbitmq普通模式(默认):what:集群中各节点有相同的队列结构,但消息只会存在于集群中的一个节点。对于消费者来说,若消息进入A节点的Queue中,当从B节点拉取时,RabbitMQ会将消......
  • 脚本安装docker和docker-composed
    该脚本支持centos7和centos8系统#!/bin/bash#一键安装docker-ce和docker-compose,本脚本适用于CentOS7和8functionos7_install_docker(){rpm-qa|grepdocker&>/etc/nullif[$?-ne0]thenecho"开始安装docker..."#step1:安装必要的一些系统工具......
  • Docker容器基础学习
    Docker的基本概念镜像(Image),容器(Container)和仓库(Repository)。镜像(Image):Docker镜像是一个只读的模板,可以用来创建Docker容器。它包含一个完整的操作系统环境,里面可以安装运行应用程序所需的所有内容,包括代码、运行时环境、系统工具、系统库和设置。镜像是通过联合文件系统(Unio......
  • 如何使用docker编排生产环境?
    在生产环境中使用Docker编排,可以通过DockerCompose或Kubernetes这两种主要的工具实现。DockerCompose:DockerCompose是一个用于定义和运行多容器Docker应用程序的工具。它使用YAML文件定义应用程序的服务、网络和卷,并通过一个命令运行整个应用程序。以下是使用Docker......
  • Docker容器报权限不足,如何配置权限?
    当Docker容器报告权限不足时,可能是由于容器内部的用户与主机操作系统的用户不匹配导致的。解决这个问题的一种常见方法是在容器内部设置适当的用户和权限。以下是几种配置容器权限的方法:在Dockerfile中配置用户和权限:你可以在Dockerfile中使用USER和RUN命令来配置容器内......