docker常用命令

1. Docker的安装和配置(centos下)

  1) 卸载旧版Docker:

    yum remove docker \
        docker-client \
        docker-client-latest \
        docker-common \
        docker-latest \
        docker-latest-logrotate \
        docker-logrotate \
        docker-engine

  2) 配置yum源:

    ① 安装yum工具:yum install -y yum-utils

    ② 配置Docker的yum源:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

  3)安装Docker:

    yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

  4) 启动和校验:

    # 启动Docker
      systemctl start docker
    # 停止Docker
      systemctl stop docker
    # 重启
      systemctl restart docker
    # 设置开机自启
      systemctl enable docker
    # 执行docker ps命令,如果不报错,说明安装启动成功
      docker ps

  5) 配置镜像加速器:

    ① 获取镜像加速器::登录自己的阿里云账号,找到容器镜像服务里的镜像加速器,就可以看到加速器地址了。

    ② 配置加速器:根据页面里的操作文档配置docker镜像加速器。

    sudo mkdir -p /etc/docker

    sudo tee /etc/docker/daemon.json <<-'EOF'

    {

      "registry-mirrors": ["https://olwe2ik2.mirror.aliyuncs.com"] 

    }

    EOF

    sudo systemctl daemon-reload

    sudo systemctl restart docker

 

2. docker 安装mysql:

  docker run -d \
    --name mysql \
    -p 3306:3306 \
    -e TZ=Asia/Shanghai \
    -e MYSQL_ROOT_PASSWORD=123 \
    mysql

解读:
    docker run: 这是Docker用于运行容器的基本命令。
    -d: 表示以守护进程模式运行容器,即在后台运行。
    --name mysql: 指定容器的名称,这里命名为mysql。
    -p 3306:3306: 将宿主机的3306端口映射到容器内的3306端口,这样就可以通过宿主机的3306端口访问MySQL服务。
    -e TZ=Asia/Shanghai: 设置环境变量,将容器内的时区设置为亚洲/上海时区。
    -e MYSQL_ROOT_PASSWORD=123: 设置环境变量,初始化MySQL的root用户密码为123。
    mysql: 要运行的Docker镜像的名称,这里是MySQL的官方镜像。

3. docker 列出容器相关信息:docker ps

4. 进入容器内部:eg:docker exec -it nginx bash
5.docker hub官网:hub.docker.com
6. ① docker创建mysql容器并挂载数据库

  参考博客:https://blog.csdn.net/qq_69183322/article/details/138058020

     基于宿主机目录实现MySQL数据目录、配置文件、初始化脚本的挂载(查阅官方镜像文档)

  docker run -d \
    --name mysql \
    -p 3306:3306 \
    -e TZ=Asia/Shanghai \
    -e MYSQL_ROOT_PASSWORD=123 \
    -v ./mysql/data:/var/lib/mysql \
    -v ./mysql/conf:/etc/mysql/conf.d \
    -v ./mysql/init:/docker-entrypoint-initdb.d \
    mysql

 ② docker 创建nginx容器并挂载前端html文件和nginx配置文件:

  docker run -d \
      --name nginx \
      -p 18080:18080 \
      -p 18081:18081 \
      -v /root/nginx/html:/usr/share/nginx/html \
      -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf \
      --network heima \
      nginx

   其中:① 两个-p是因为有两个前端项目,nginx配置文件里配置了两个前端端口,html文件里是两个前端项目,② -v /root/nginx/nginx.conf 挂载的是配置文件不是目录 ③ --network heima 是连接到heima网桥。

 7. Dockerfile 构建镜像命令:

  eg:

  # 基础镜像
  FROM openjdk:11.0-jre-buster
  # 设定时区
  ENV TZ=Asia/Shanghai
  RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
  # 拷贝jar包
  COPY docker-demo.jar /app.jar
  # 入口
  ENTRYPOINT ["java", "-jar", "/app.jar"]

 8. docker 容器连接自己创建的网桥:

 eg: mysql容器连接 testwangqiao 网桥:

  docker network connect testwangqiao mysql

         查看容器详情:docker inspect mysql

 9. DockerCompose:

   使用dockercompose部署容器前先删除mysql、nginx、hm容器:

   docker rm -f mysql nginx hm

   按照docker-compose.yml文件构建并部署容器和网桥:
   docker compose up -d

   停止和删除容器:
   docker compose down

   查看网桥
   docker network ls

10.DockerComplse 根据docker-compose.yml文件实现对docker容器集群的快速编排:

  docker-compose.yml文件示例:

version: "3.8"
services:
  mysql:
    image: mysql
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123
    volumes:
      - "./mysql/conf:/etc/mysql/conf.d"
      - "./mysql/data:/var/lib/mysql"
      - "./mysql/init:/docker-entrypoint-initdb.d"
    networks:
      - hm-net
  hmall:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: hmall
    ports:
      - "8080:8080"
    networks:
      - hm-net
    depends_on:
      - mysql
  nginx:
    image: nginx
    container_name: nginx
    ports:
      - "18080:18080"
      - "18081:18081"
    volumes:
      - "./nginx/nginx.conf:/etc/nginx/nginx.conf"
      - "./nginx/html:/usr/share/nginx/html"
    depends_on:
      - hmall
    networks:
      - hm-net
networks:
  hm-net:
    name: hmall 

 

posted @ 2024-07-17 14:08  sensen~||^_^|||&  阅读(13)  评论(0编辑  收藏  举报