dokcer/docker-compose使用记录

        docker-compose如何安装暂不赘述,腾讯云的虚拟主机已默认安装了docker+docker-compose,可直接在上面操作。

1. 通过docker-compose.yml添加镜像

        下面是腾讯云上docker-compose.yml文件。

        手动添加了elasticsearch,后续添加新镜像可按下述规则来配置。

version: "2.4"
services:
  mysql:
    container_name: mysql
    environment:
      - TZ=Asia/Shanghai
      - MYSQL_ROOT_PASSWORD=root123#
    hostname: mysql
    image: mysql:5.7
    networks:
      my-network:
        ipv4_address: 192.168.159.2
    ports:
      - 3306:3306
    restart: always
    volumes:
      - ./mysql/data:/var/lib/mysql
      - ./mysql/my.cnf:/etc/mysql/my.cnf
      - ./mysql/initdb:/docker-entrypoint-initdb.d

  redis:
    container_name: redis
    environment:
      - TZ=Asia/Shanghai
    hostname: redis
    image: redis:5.0
    networks:
      my-network:
        ipv4_address: 192.168.159.3
    ports:
      - 6379:6379
    restart: always

  elasticsearch:
    container_name: elasticsearch
    environment:
      - cluster.name=elasticsearch
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - http.cors.allow-origin=*
      - discovery.type=single-node # 需配置成单机,否则会非常耗机器cpu
    hostname: elasticsearch
    image: elasticsearch:7.0.1 # 版本号不对会启动失败,但没有找到日志
    networks:
      my-network:
        ipv4_address: 192.168.159.4
    ports:
      - 9200:9200
      - 9300:9300
    restart: always


networks:
  my-network:
    driver: bridge
    ipam:
      config:
        - subnet: 192.168.159.0/24
    name: my-network

        yaml文件中每个节点对应的含义可以参考这篇文章:docker-compose教程(安装,使用, 快速入门)

2. docker-compose常用命令

2.1 docker常用命令

docker volume create redis-data # 创建数据卷进行数据持久化
docker volume ls # 查看创建的volume
#启动容器:
docker container run -p 6379:6379  --restart=always  --mount source=redis-data,destination=/var/lib/redis  -v /etc/localtime:/etc/localtime  --name my_redis  -d redis redis-server --appendonly yes
命令说明:
1.docker container run :启动一个容器并运行。以前版本直接用docker run,后来我估计是为了更细分职责,docker添加了manager command,即docker container,docker image等等。这样更明确标准。
2. -p 6379:6379 :宿主机的6379端口与容器的6379端口进行绑定。这样外部可以通过访问宿主机的6379端口进而访问到容器中的6379端口。
3. --mount source=redis-data,destination=/var/lib/redis :数据卷进行绑定。source是指的上面我们在宿主机创建出来的volume,destination即我们要与容器中的哪个数据卷进行绑定。当然绑定数据卷还可以用-v 宿主机数据卷:容器数据卷进行绑定。
4. -v /etc/localtime:/etc/localtime :设定容器的时间与宿主机保持一致。
5. --name my_redis :设置容器的名称my_redis。注意:容器名称是唯一的。
6. -d redis :告诉容器在后台运行 redis
 
 
#获取运行my_redis容器IP 端口
docker container port my_redis
 
#进入启动的容器中: 
docker exec -it 4f4891cdad34(容器ID可用docker ps 查看对应容器ID) /bin/bash
 
 
# 容器中登录 redis,如开启redis容器为my_redis:
docker container exec -it my_redis  /bin/bash
命令说明:
docker container exec 进入容器
-t 让docker分配一个伪终端,并绑定到容器的标准输入上
-i 让容器的标准输入保持打开
my_redis 是容器的名字
 
命令进入如下:
root@my-redis:/data# redis-cli
127.0.0.1:6379> 
退出容器: exit
 
容器<->宿主机文件拷贝:
容器-->宿主机 :docker cp 容器名:要拷贝的文件在容器里面的路径   要拷贝到宿主机的相应路径
宿主机-->容器 :docker cp 宿主机要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
 
 
docker 停止、启动、删除镜像指令 
 
一,容器
 
 docker ps // 查看所有正在运行容器
 docker stop containerId // containerId 是容器的ID
 
 docker ps -a // 查看所有容器
 docker ps -a -q // 查看所有容器ID
 
 docker start $(docker ps -a -q) // start启动所有停止的容器
 docker stop $(docker ps -a -q) // stop停止所有容器
 docker rm $(docker ps -a -q) // remove删除所有容器
 
 
二,镜像
删除所有镜像:
docker rmi $(docker images -q)
 
根据格式删除所有镜像:
docker rm $(docker ps -qf status=exited)

2.2 docker拉取镜像

docker pull centos     # 默认最新版本 
docker pull tomcat     # 默认最新版本 
docker pull nginx      # 默认最新版本 或nginx:1.2.2加tag指定版本
docker pull mysql:5.7  # mysql5.7版本
docker pull redis:4.0  # redis4.0版本

2.3 docker-compose常用命令

docker-compose ps     # ps:列出当前有哪些容器(docker-compose.yml 所在文件夹下执行)
docker-compose logs   # logs:查看服务日志输出
docker-compose build  # build:构建或者重新构建服务
docker-compose start eureka #  启动指定服务已存在的容器eureka 同理 start 启动 stop 停止 rm 删除
docker-compose port eureka 8761 # port:打印绑定的公共端口,下面命令可以输出 eureka 服务 8761 端口所绑定的公共端口
 
docker-compose up    # 启动容器 加-d 后台运行
 
docker-compose --help #你会看到如下这么多命令
build               Build or rebuild services
bundle              Generate a Docker bundle from the Compose file
config              Validate and view the Compose file
create              Create services
down                Stop and remove containers, networks, images, and volumes
events              Receive real time events from containers
exec                Execute a command in a running container
help                Get help on a command
images              List images
kill                Kill containers
logs                View output from containers
pause               Pause services
port                Print the public port for a port binding
ps                  List containers
pull                Pull service images
push                Push service images
restart             Restart services
rm                  Remove stopped containers
run                 Run a one-off command
scale               Set number of containers for a service
start               Start services
stop                Stop services
top                 Display the running processes
unpause             Unpause services
up                  Create and start containers
version             Show the Docker-Compose version information
 
一般常用命令:
docker-compose up -d nginx                # 构建建启动nignx容器
 
docker-compose exec nginx bash            # 登录到nginx容器中
 
docker-compose down                       # 删除所有nginx容器,镜像
 
docker-compose ps                         # 显示所有容器
 
docker-compose restart nginx              # 重新启动nginx容器
 
docker-compose run --no-deps --rm php-fpm php -v # 在php-fpm中不启动关联容器,并容器执行php -v 执行完成后删除容器
 
docker-compose build nginx                     # 构建镜像        
 
docker-compose build --no-cache nginx          # 不带缓存的构建。
 
docker-compose logs  nginx                     # 查看nginx的日志 
 
docker-compose logs -f nginx                   # 查看nginx的实时日志
 
 
 
docker-compose config  -q                      # 验证(docker-compose.yml)文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息。 
 
docker-compose events --json nginx           # 以json的形式输出nginx的docker日志
 
docker-compose pause nginx                   # 暂停nignx容器
 
docker-compose unpause nginx                 # 恢复ningx容器
 
docker-compose rm nginx                      # 删除容器(删除前必须关闭容器)
 
docker-compose stop nginx                    # 停止nignx容器
 
docker-compose start nginx                   # 启动nignx容器
 
docker-compose exec nginx bash  # 进入nginx服务下容器
 
docker-compose exec --index=1 nginx bash # 进入nginx服务下容器 多台 需要加参数 --index=xxx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值