个人笔记
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

228 lines
5.2 KiB

3 years ago
# 常用命令
## 查看版本
```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 时,将容器暂停 |
3 years ago
# 其他
## 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
```