Docker命令与操作

1. docker命令

  • 启停
    • 启动:systemctl start docker
    • 停止:systemctl stop docker
    • 重启:systemctl restart docker
    • 开机启动:systemctl enable docker
  • 信息
    • 版本:docker version
    • 详细信息:docker info
  • 镜像
    • 查看本地镜像:docker images
    • 搜索镜像:docker search nginx
    • 拉取镜像:docker pull mysql:5.7
    • 删除本地镜像:docker rmi mysql:5.7
  • 容器
    • 运行一个容器:docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]

      • -d, --detach:在后台模式运行容器,并返回容器ID。默认情况下,容器会在前台运行并打印其输出。
      • -i, --interactive:保持容器STDIN打开以供交互式操作,通常与 -t 一起使用。
      • -t, --tty:为容器分配一个伪TTY终端,使得可以进行交互式操作,如运行shell。
      • --name container_name:为新创建的容器指定一个名称。
      • -p, --publish host_port:container_port:发布容器端口到主机端口,实现端口映射。例如,-p 8080:80 表示将宿主机的8080端口映射到容器的80端口。
      • -v, --volume [host-dir:]container-dir[:options]:绑定挂载主机目录到容器内。例如,-v /path/on/host:/path/in/container
      • --env key=value-e key=value:设置环境变量。
      • --rm:容器退出后自动删除容器文件系统。
      • --restart policy:设置容器的重启策略,如 no, on-failure, always, 等。
      • COMMAND:容器启动后执行的命令,如果不指定,则执行镜像的默认ENTRYPOINT。
      • [ARG...]:传递给容器内命令的参数。
    • 查看正在运行的容器:docker ps

    • 查看所有容器:docker ps -a

    • 启动容器:docker start CONTAINER_ID / NAME

    • 停止容器:docker stop CONTAINER_ID / NAME

    • 删除容器:docker rm CONTAINER_ID / NAME

    • 强制删除容器:docker rm -f CONTAINER_ID / NAME

    • 查看容器详细信息:docker inspect CONTAINER_ID / NAME

    • 进入容器:docker exec -it CONTAINER_ID / NAME /bin/bash

2. 文件操作

  • 从宿主机复制到容器
    • docker cp [宿主机路径] [CONTAINER_ID / NAME]:[容器路径]
  • 容器复制到宿主机
    • docker cp [CONTAINER_ID / NAME]:[容器路径] [宿主机路径]
  • 文件挂载
    • docker run -v [宿主机路径]:[容器路径] …

3. 构建自定义镜像

  • Dockerfile构建
    • docker build -t custom-images:latest
  • Commit构建
    • docker commit 命令将容器的当前状态保存为一个新的镜像
    • docker commit -m "Added custom configuration" -a "Your Name" my-modified-container my-custom-image:version1
    • -m:注释,-a:作者

4. 镜像打包和复制

打包镜像
docker save -o /home/es.8.13.4.tar elasticsearch:8.13.4
加载镜像
docker load -i /home/docker-images/es8.13.4.tar