docker基本操作

容器2周前更新 hank
111 0
  1. 生命周期管理命令
  2. 初步开始
  3. 容器运行操作
  4. 进入容器的办法
  5. docker-compose相关

生命周期管理命令

后面一般接 container id 或者 Name

docker create:创建一个容器
docker start:启动一个容器
docker run:创建并运行一个容器
docker pause:暂停一个容器
docker unpause:恢复一个容器
docker restart:重启一个容器
docker stop:停止一个运行的容器
docker rm:删除一个处于终止状态的容器
docker kill:杀死容器进程

初步开始

创建一个容器:docker create --name
启动容器:docker start
查看所有容器信息:docker container ls
查看所有容器的状态:docker ps -a
删除容器:docker kill 、docker rm
查看帮助:docker [command] --help ,这些是用于管理 Docker 容器生命周期及查看相关信息的命令

容器运行操作

docker run命令
命令格式
docker run [OPTIONS] [COMMAND]
选项说明
- --name="":指定容器名字
- -d:设置容器在后台运行(默认前台)
- -e:配置容器内可用的环境变量
- -p:映射容器暴露的端口(宿主端口:容器端口 )
- -it:启动容器后进入交互命令行
- --rm:容器停止时自动删除
示例
1.后台运行并映射端口的 httpd 容器:docker run --name -d -p 8080:80 httpd
2.后台持续执行脚本的 centos 容器:docker run -d centos /bin/bash -c "while true; do sleep 1; echo Hanmei; done"

进入容器的办法

方法一:docker exec 命令(一般搭配 -it 参数使用)
- 作用:在容器中打开新终端,会启动新进程
- 用法格式:docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
方法二:docker attach 命令(不推荐使用)
- 作用:直接进入已启动容器的命令终端,不启动新进程
- 用法格式:docker attach [OPTIONS] CONTAINER

 

docker-compose相关

启动服务

#后台启动服务
docker-compose up -d

# 前台启动服务(显示日志)
docker-compose up

停止

# 停止并删除容器、网络
docker-compose down

# 仅停止服务
docker-compose stop

# 停止并删除容器(保留数据卷)
docker-compose down --volumes

查看服务状态

# 查看运行中的容器
docker-compose ps

# 查看服务日志
docker-compose logs
docker-compose logs -f # 实时跟踪日志

进入容器

docker-compose exec -it service_name bash

执行命令

docker-compose run service_name command
# 示例:在web服务中执行ls命令
docker-compose run web ls -l

删除停止的容器

docker-compose rm

docker-compose.yml文件样例
需要注意缩进的问题,如果有多个services,可以根据自己的需求进行排序调整,docker-compose支持在一个文件中定义多个服务
一般常用的就是 image ports volums

version: '3'

services:
  # Nginx Web服务器配置
  nginx:
    image: 192.168.100.16:18888/hubdocker/nginx  # 可替换为公共镜像
    container_name: nginx
    ports:
      - "8080:80"  # 宿主机端口:容器端口
    volumes:
      - /tmp/Docker/docker-compose/nginx/index.html:/usr/share/nginx/html/index.html
    restart: unless-stopped

  # PHP-FPM服务配置
  php:
    image: php:8.1-fpm
    container_name: php
    volumes:
      - /tmp/Docker/docker-compose/php:/var/www/html
    restart: unless-stopped

  # Redis缓存服务配置
  redis:
    image: redis:7.0-alpine
    container_name: redis
    command: redis-server --requirepass your_redis_password
    volumes:
      - redis-data:/data
    restart: unless-stopped

  # MySQL数据库服务配置
  db:
    image: mysql:8.0
    container_name: mysql
    command: --default-authentication-plugin=mysql_native_password
    environment:
      MYSQL_ROOT_PASSWORD: your_root_password
      MYSQL_DATABASE: your_database
      MYSQL_USER: your_user
      MYSQL_PASSWORD: your_password
    volumes:
      - mysql-data:/var/lib/mysql
    restart: unless-stopped

# 数据卷定义
volumes:
  redis-data:
  mysql-data:

诸如此类
配置完成使用docker-compose up -d 一键部署

© 版权声明

相关文章