# 常用命令 ## 查看版本 ```shell docker version ``` ## 从Docker文件构建镜像 ```shell docker build -t image-name docker-file-location ``` *-t*:它用于指定使用提供的名称来标记Docker映像。 ## 运行镜像/创建容器 ```shell docker run -d image-name ``` *-d*:用于创建守护程序进程 ## 查看可用的镜像 ```shell docker images ``` ## 查看运行容器 ```shell docker ps -l //显示最新的可用容器 docker ps -a //显示所有可用的容器 ``` ## 运行与停止容器 ```shell docker start container_id docker stop container_id docker restart container_id ``` ## 进入容器 ```shell docker exec -it container-id bash ``` ## 删除容器 ```shell docker rm -f container_id //删除指定容器 docker rm $(docker ps -a -q) //删除所有容器 ``` ## 删除镜像 ```shell docker rmi image-name //删除指定镜像 docker rmi $(docker images -q) //删除所有镜像 docker rmi -r $(docker images -q) //强制删除所有镜像 ``` ## 修改容器端口映射 - 停止容器 - 查找容器ID ```shell docker inspect nginx-alpine ``` 容器ID为:004d95fb40fd811128a5fb6c6c6ae8fab51e234779f92e5a91d0d84e0a80cb1c - 进入容器目录 ``` cd cd /home/docker/containers/004d95fb40fd811128a5fb6c6c6ae8fab51e234779f92e5a91d0d84e0a80cb1c ``` - 修改容器配置 ```shell vim hostconfig.json ``` 其中`PortBindings`属性即为容器端口映射配置 - 修改后重启容器 ## 容器与宿主机文件拷贝 - 容器 → 宿主机 ```shell docker cp <容器名/ID>:<容器文件路径> <宿主机文件夹路径> ``` - 宿主机 → 容器 ```she docker cp <宿主机文件路径> <容器名/ID>:<容器文件夹路径> ``` ## 将容器打包为镜像 ```shell docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] ``` | Option | 功能 | | :----- | :----------------------------- | | -a | 指定新镜像作者 | | -c | 使用 Dockerfile 指令来创建镜像 | | -m | 提交生成镜像的说明信息 | | -p | 在 commit 时,将容器暂停 | # 其他 ## docker container update 更新一个或多个容器的配置 ```shell docker container update [OPTIONS] CONTAINER [CONTAINER...] ``` | 名称,简写 | 默认值 | 描述 | | -------------------- | ------ | ------------------------------------------------------------ | | --blkio-weight | 0 | 阻塞IO(相对权重),介于`10`和`1000`之间,或`0`禁用(默认为`0`) | | --cpu-period | 0 | 限制CPU CFS(完全公平的调度程序)周期 | | --restart | | 重新启动在容器退出时应用的策略 | | --memory, -m | | 内存限制 | | --kernel-memory | | 内核内存限制 | | --memory-swap | | 交换限制等于内存加交换:’`-1`‘以启用无限制的交换 | | --memory-reservation | | 内存软限制 | # docker compose ## Compose 安装 Linux 上我们可以从 Github 上下载它的二进制包来使用,最新发行的版本地址:https://github.com/docker/compose/releases。 运行以下命令以下载 Docker Compose 的当前稳定版本: ```shell curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose ``` 要安装其他版本的 Compose,请替换 v2.2.2。 Docker Compose 存放在 GitHub,不太稳定。也可以通过执行下面的命令,高速安装 Docker Compose。 ```shell curl -L https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose ``` 给予执行权限 创建软连接 ```shell chmod +x /usr/local/bin/docker-compose ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose ``` ## Compose命令 ``` # 默认使用docker-compose.yml构建镜像 $ docker-compose build $ docker-compose build --no-cache # 不带缓存的构建 # 指定不同yml文件模板用于构建镜像 $ docker-compose build -f docker-compose1.yml # 列出Compose文件构建的镜像 $ docker-compose images # 启动所有编排容器服务 $ docker-compose up -d # 查看正在运行中的容器 $ docker-compose ps # 查看所有编排容器,包括已停止的容器 $ docker-compose ps -a # 进入指定容器执行命令 $ docker-compose exec nginx bash $ docker-compose exec web python manage.py migrate --noinput # 查看web容器的实时日志 $ docker-compose logs -f web # 停止所有up命令启动的容器 $ docker-compose down # 停止所有up命令启动的容器,并移除数据卷 $ docker-compose down -v # 重新启动停止服务的容器 $ docker-compose restart web # 暂停web容器 $ docker-compose pause web # 恢复web容器 $ docker-compose unpause web # 删除web容器,删除前必需停止stop web容器服务 $ docker-compose rm web # 查看各个服务容器内运行的进程 $ docker-compose top ```