Skip to content

安装

  • 卸载旧版
bash
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
  • 配置Docker的yum库

    安装yum工具 yum install -y yum-utils 配置yum的docker源 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

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

  • 启动和校验

 # 启动Docker
 systemctl start docker
 
 # 停止Docker
 systemctl stop docker
 
 # 重启
 systemctl restart docker
 
 # 设置开机自启
 systemctl enable docker

 # Docker容器开机自启
 docker update --restart=always [容器名/容器id]
 
 # 执行docker ps命令,如果不报错,说明安装启动成功
 docker ps

一键安装启动mysql

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

常见命令

命令说明
docker pull拉取镜像
docker push推送镜像
docker images查看本地镜像
docker rmi删除本地镜像
docker run创建并运行容器(名称不能重复)
docker stop停止容器
docker start启动容器
docker restart重启容器
docker rm删除容器 (-f 强制删除)
docker ps查看容器
docker logs -f查看容器运行日志(-f 实时查看)
docker exec -it进入容器
docker save保持镜像到本地
docker load加载本地压缩文件到镜像
docker inspect查看容器详情

常用命令的关系

数据卷

是一个虚拟目录。他将宿主机目录映射到容易内目录,方便我们操作容器内的文件,或者方便迁移容器产生的数据。挂载后目录是同步的。

一键安装启动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

Dockerfile 记录镜像解构的文件

指令说明示例
FROM指定基础镜像FROM centos:6
ENV设置环境变量,可在后面指令使用ENV key value
COPY拷贝本地文件到镜像的指定目录COPY ./xx.jar /tmp/app.jar
RUN执行Linux的shell命令,一般是安装过程的命令RUN yum install gcc
EXPOSE指定容器运行时监听的端口,是给镜像使用者看的EXPOSE 8080
ENTRYPOINT镜像中应用的启动命令,容器运行时调用ENTRYPOINT java -jar xx.jar

DockerCompose

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:
      - shortLink-net
  shortLink:
    build: 
      context: .
      dockerfile: Dockerfile
    container_name: shortLink
    ports:
      - "7001:7001"
    networks:
      - shortLink-net
    depends_on:
      - mysql
  nginx:
    image: nginx
    container_name: nginx
    ports:
      - "3001:3001"
    volumes:
      - "./nginx/nginx.conf:/etc/nginx/nginx.conf"
      - "./nginx/html:/usr/share/nginx/html"
    depends_on:
      - shortLink
    networks:
      - shortLink-net
networks:
  shortLink-net:
    name: shortLink