以下是完整的Docker和Docker Compose学习笔记,特别详细地涵盖了Docker Compose的安装、使用、构建、网络配置、数据卷等内容。
。
更新包索引
sudo apt-get update
安装必要的包
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
添加Docker的官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
添加Docker的稳定版本仓库
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
安装Docker
sudo apt-get update
sudo apt-get install docker-ce
启动Docker
sudo systemctl start docker
设置开机自启
sudo systemctl enable docker
检查Docker状态
sudo systemctl status docker
为了提高Docker Hub的下载速度,可以使用国内镜像源。
修改Docker配置文件(通常在 /etc/docker/daemon.json
)
{
"registry-mirrors": ["https://<your_mirror>.mirror.aliyuncs.com"]
}
重启Docker服务
sudo systemctl restart docker
查看Docker版本
docker --version
拉取镜像
docker pull <image_name>
列出本地镜像
docker images
删除镜像
docker rmi <image_name>
运行容器
docker run -d --name <container_name> <image_name>
列出运行中的容器
docker ps
列出所有容器
docker ps -a
停止容器
docker stop <container_name>
启动容器
docker start <container_name>
删除容器
docker rm <container_name>
进入容器
docker exec -it <container_name> /bin/bash
查看容器日志
docker logs <container_name>
Docker Compose V2已集成到Docker CLI中,可以通过以下步骤安装:
下载并安装
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/libexec/docker/cli-plugins/docker-compose
添加执行权限
sudo chmod +x /usr/libexec/docker/cli-plugins/docker-compose
验证安装
docker compose version
docker-compose.yml
文件用于定义服务、网络和数据卷等。以下是一个详细示例:
version: '3.8' # 指定Compose文件版本
services: # 定义服务
web:
image: nginx:latest # 使用Nginx镜像
ports:
- "80:80" # 映射端口
volumes:
- ./html:/usr/share/nginx/html # 将本地html目录挂载到容器
networks:
- webnet # 使用自定义网络
db:
image: postgres:latest # 使用PostgreSQL镜像
environment: # 定义环境变量
POSTGRES_USER: user
POSTGRES_PASSWORD: password
volumes:
- db_data:/var/lib/postgresql/data # 持久化数据库数据
networks:
- webnet
networks: # 定义自定义网络
webnet:
volumes: # 定义数据卷
db_data:
启动服务
启动在docker-compose.yml
中定义的所有服务,并在后台运行。
docker compose up -d
停止服务
停止运行的服务并移除容器,但保留数据卷。
docker compose down
停止并删除所有服务和网络
docker compose down --volumes
查看服务状态
列出当前正在运行的服务及其状态。
docker compose ps
查看服务日志
查看所有服务的输出日志。
docker compose logs
查看特定服务的日志
docker compose logs <service_name>
执行命令
在指定服务的容器中执行命令,例如进入web
服务的容器。
docker compose exec web /bin/bash
构建服务
根据Dockerfile
构建服务,可以使用以下命令:
docker compose build
--no-cache
选项:docker compose build --no-cache
查看构建信息
docker compose build --progress=plain
缩放服务
启动指定数量的容器。例如,启动2个web
服务实例。
docker compose up -d --scale web=2
重新启动服务
仅重启指定的服务。
docker compose restart <service_name>
更新服务
拉取新版本的镜像并更新服务。
docker compose pull
docker compose up -d
在docker-compose.yml
中定义的网络可以通过以下方式使用:
自定义网络
networks:
my_custom_network:
driver: bridge # 使用桥接网络
在服务中引用网络
services:
my_service:
networks:
- my_custom_network
使用数据卷可以持久化容器中的数据:
在docker-compose.yml
中定义数据卷
volumes:
my_volume:
在服务中使用数据卷
services:
my_service:
volumes:
- my_volume:/data # 将数据卷挂载到容器中的/data路径
© 著作权归作者所有
本文由 趣代码Blog 创作,采用 知识共享署名4.0 国际许可协议进行许可,本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。