docker 命令

本文详细介绍了Docker的各种命令,包括搜索、拉取、查看镜像,检查、启动、停止、删除容器等操作,以及镜像层的概念。此外,还阐述了如何使用docker-compose进行服务的构建、启动、停止等,并给出了具体的启动命令示例,如mysql、rabbitmq、nacos等。最后,提供了一个完整的docker-compose.yml文件,用于部署Apollo和Nacos等服务。
摘要由CSDN通过智能技术生成
  • docker命令

docker search -f stars=1000  mysql 仓库查找mysql 热度大于1000
docker search --limit 10 mysql 仓库查找mysql 前10个
docker pull mysql 拉去mysql
docker images 查看镜像
docker inspect 镜像id 查看镜像元数据
docker top 容器id 查看进程信息
docker rmi  -f ${docker images -qa} 删除所有
docker run -itd --name redis-test -p 6379:6379 redis 启动redis
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql 启动mysql
docker ps 查看正在运行的容器
docker ps -a 查看所有的容器
docker start/stop/restart/kill 启动/停止/重启/强制停止容器
docker rm 容器id 删除容器
docker attach 容器id   进入容器正在执行的终端,不会启动新的线程
docker exec -it 容器id 命令 进入容器开启一个新的终端,可以在里面操作
exit 退出并关闭容器
ctrl+q+p 退出不关闭容器
docker cp 64866ff2a006:/data/dump.rdb ./ 从容器内拷贝文件到linux
docker run -it -rm 名称  临时启动 不会留下容器id 关闭既删除

docker 镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像顶部,这一层就是我们通常说的容器层,容器之下都叫镜像层

-v 容器路径  匿名挂载
-v 卷名:容器内路径 具名挂载 
-v 指定路径:容器内路径 指定路径挂载 

-v 容器路径:ro/rw 只读/可读可写
docker run -itd --name mysql-volume -p 3309:3306 -e MYSQL_ROOT_PASSWORD=123456 -v mysql-volume-data:/var/lib/mysql mysql
docker volume ls
docker volume inspect  mysql-volume-data

  • docker-compose 命令

docker-compose up 构建/重新构建服务
docker-compose up -d 后台运行
docker-compose start [service] 启动已存在的服务
docker-compose stop 停止一个服务
docker stop $(docker-compose ps -q)停止docker-compose所有容器

  • docker启动命令

docker run -d --hostname my-rabbit --name rabbit -p 5672:5672 -p 15672:15672 rabbitmq:3-management
docker run -d --name=cddd -e CONSUL_BIND_INTERFACE=eth0 -p 8500:8500 consul
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
docker run --privileged=true -d --name zookeeper --publish 2181:2181  -d zookeeper
docker run -itd --name redis-test -p 6379:6379 redis

部署apollo 参考:https://gitee.com/angelinfo/apollo 去除pro
docker run -p 8080:8080 \
    -e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.138.138:3306/ApolloConfigDB?characterEncoding=utf8" \
    -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=123456 \
    -d -v /tmp/logs:/opt/logs --name apollo-configservice apolloconfig/apollo-configservice

docker run -p 8090:8090 \
    -e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.138.138:3306/ApolloConfigDB?characterEncoding=utf8" \
    -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=123456 \
    -d -v /tmp/logs:/opt/logs --name apollo-adminservice apolloconfig/apollo-adminservice
    
docker run -p 8070:8070 \
    -e SPRING_DATASOURCE_URL="jdbc:mysql://192.168.138.138:3306/ApolloPortalDB?characterEncoding=utf8" \
    -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=123456 \
    -e APOLLO_PORTAL_ENVS=dev \
    -e DEV_META=http://192.168.138.138:8080 \
    -d -v /tmp/logs:/opt/logs --name apollo-portal apolloconfig/apollo-portal

部署nacos
docker run -d \
-e PREFER_HOST_MODE=ip \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.138.138 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e TIME_ZONE='Asia/Shanghai' \
-v /home/dockerdata/nacos1.3.1/logs:/home/nacos/logs \
-p 8848:8848 \
--name nacos1.3.1 \
--restart=always \
nacos/nacos-server:1.4.1

 

  • docker-compose启动命令/文件

docker-compose 所有运行环境启动 nacos 在mysql中提前导入nacos所需数据,环境:redis mysql ribbitmq zookeeper nacos consul

version: "3.3"

services:
  mysql:
    container_name: mysql_env
    image: mysql:5.7
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - TZ=Asia/Shanghai
    volumes:
      - mysqlData:/var/lib/mysql/
    networks:
      - env
  redis:
    container_name: redis_env
    image: redis
    ports:
      - "6379:6379"
    networks:
      - env
  ribbitmq:
    container_name: ribbitmq_dev
    image: rabbitmq:3-management
    ports:
      - "5672:5672"
      - "15672:15672"
    networks:
      - env
  consul:
    container_name: consul_env
    image: consul
    ports:
      - "8500:8500"
    networks:
      - env
  zookeeper:
    container_name: zookeeper_env
    image: zookeeper
    ports:
      - "2181:2181"
    networks:
      - env
    privileged: true
  nacos:
    container_name: nacos_env
    image: nacos/nacos-server:1.4.1
    restart: always
    ports:
      - 8848:8848
    networks:
      - env
    environment:
      - PREFER_HOST_MODE=ip
      - MODE=standalone
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=mysql_env
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=123456
      - MYSQL_SERVICE_DB_NAME=nacos_config
      - TIME_ZONE='Asia/Shanghai'
      - JVM_XMS=512m
      - JVM_XMX=512m
      - JVM_XMN=128m
    volumes:
      - nacosLogs:/home/nacos/logs
#      - ./wait-for-it.sh:/wait-for-it.sh
#    entrypoint: "/wait-for-it.sh -t 0 192.168.138.138:3306 -- "
#    command: "bin/docker-startup.sh"
    depends_on:
      - mysql
volumes:
  mysqlData:
  nacosLogs:
networks:
  env:

先启动mysql并导入 apollo所需sql文件

version: '3.3'

services:
  apollo-configservice:
    container_name: apollo-configservice
    image: apolloconfig/apollo-configservice
    volumes:
      - type: volume
        source: logs
        target: /opt/logs
    ports:
      - "8080:8080"
    environment:
      - SPRING_DATASOURCE_URL=jdbc:mysql://192.168.138.138:3306/ApolloConfigDB?characterEncoding=utf8
      - SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=123456
    restart: always
    network_mode: host

  apollo-adminservice:
    depends_on:
      - apollo-configservice
    container_name: apollo-adminservice
    image: apolloconfig/apollo-adminservice
    volumes:
      - type: volume
        source: logs
        target: /opt/logs
    ports:
      - "8090:8090"
    environment:
      - SPRING_DATASOURCE_URL=jdbc:mysql://192.168.138.138:3306/ApolloConfigDB?characterEncoding=utf8
      - SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=123456
    restart: always
    network_mode: host

  apollo-portal:
    depends_on:
      - apollo-adminservice
    container_name: apollo-portal
    image: apolloconfig/apollo-portal
    volumes:
      - type: volume
        source: logs
        target: /opt/logs
    ports:
      - "8070:8070"
    environment:
      - SPRING_DATASOURCE_URL=jdbc:mysql://192.168.138.138:3306/ApolloPortalDB?characterEncoding=utf8
      - SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=123456
      - APOLLO_PORTAL_ENVS=dev
      - DEV_META=http://192.168.138.138:8080
    restart: always
    network_mode: host

volumes:
  logs:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /tmp/logs

最终的yml文件

version: "3.3"

services:
  mysql:
    container_name: mysql_env
    image: mysql:5.7
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - TZ=Asia/Shanghai
    volumes:
      - mysqlData:/var/lib/mysql/
    networks:
      - env
  redis:
    container_name: redis_env
    image: redis
    ports:
      - "6379:6379"
    networks:
      - env
  ribbitmq:
    container_name: ribbitmq_dev
    image: rabbitmq:3-management
    ports:
      - "5672:5672"
      - "15672:15672"
    networks:
      - env
  consul:
    container_name: consul_env
    image: consul
    ports:
      - "8500:8500"
    networks:
      - env
  zookeeper:
    container_name: zookeeper_env
    image: zookeeper
    ports:
      - "2181:2181"
    networks:
      - env
    privileged: true
  nacos:
    container_name: nacos_env
    image: nacos/nacos-server:1.4.1
    restart: always
    ports:
      - 8848:8848
    networks:
      - env
    environment:
      - PREFER_HOST_MODE=ip
      - MODE=standalone
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=192.168.138.138
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=123456
      - MYSQL_SERVICE_DB_NAME=nacos_config
      - TIME_ZONE='Asia/Shanghai'
      - JVM_XMS=512m
      - JVM_XMX=512m
      - JVM_XMN=128m
    volumes:
      - nacosLogs:/home/nacos/logs
#      - ./wait-for-it.sh:/wait-for-it.sh
#    entrypoint: "/wait-for-it.sh -t 0 192.168.138.138:3306 -- "
#    command: "bin/docker-startup.sh"
    depends_on:
      - mysql
  apollo-configservice:
    depends_on:
      - mysql
    container_name: apollo-configservice_env
    image: apolloconfig/apollo-configservice
    volumes:
      - type: volume
        source: logs
        target: /opt/logs
    ports:
      - "8080:8080"
    network_mode: host
    environment:
      - SPRING_DATASOURCE_URL=jdbc:mysql://192.168.138.138:3306/ApolloConfigDB?characterEncoding=utf8
      - SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=123456
    restart: always

  apollo-adminservice:
    depends_on:
      - apollo-configservice
      - mysql
    container_name: apollo-adminservice_env
    image: apolloconfig/apollo-adminservice
    volumes:
      - type: volume
        source: logs
        target: /opt/logs
    ports:
      - "8090:8090"
    network_mode: host
    environment:
      - SPRING_DATASOURCE_URL=jdbc:mysql://192.168.138.138:3306/ApolloConfigDB?characterEncoding=utf8
      - SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=123456
    restart: always

  apollo-portal:
    depends_on:
      - apollo-adminservice
      - mysql
    container_name: apollo-portal_env
    image: apolloconfig/apollo-portal
    volumes:
      - type: volume
        source: logs
        target: /opt/logs
    ports:
      - "8070:8070"
    network_mode: host
    environment:
      - SPRING_DATASOURCE_URL=jdbc:mysql://192.168.138.138:3306/ApolloPortalDB?characterEncoding=utf8
      - SPRING_DATASOURCE_USERNAME=root
      - SPRING_DATASOURCE_PASSWORD=123456
      - APOLLO_PORTAL_ENVS=dev
      - DEV_META=http://192.168.138.138:8080
    restart: always

volumes:
  mysqlData:
  nacosLogs:
  logs:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /tmp/logs
networks:
  env:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值