安装 Docker
在 Linux 系统上安装 Docker 需要根据具体的发行版选择对应的安装方式。以下以 Ubuntu 为例:
更新软件包索引并安装依赖:
bash
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
添加 Docker 官方 GPG 密钥:
bash
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
添加 Docker 仓库:
bash
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装 Docker Engine:
bash
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
验证安装:
bash
sudo docker run hello-world
管理 Docker 服务
启动 Docker 服务:
bash
sudo systemctl start docker
设置 Docker 开机自启:
bash
sudo systemctl enable docker
检查 Docker 运行状态:
bash
sudo systemctl status docker
常用 Docker 命令
拉取镜像:
bash
sudo docker pull ubuntu:latest
列出本地镜像:
bash
sudo docker images
运行容器:
bash
sudo docker run -it ubuntu /bin/bash
列出运行中的容器:
bash
sudo docker ps
列出所有容器(包括停止的):
bash
sudo docker ps -a
停止容器:
bash
sudo docker stop <container_id>
删除容器:
bash
sudo docker rm <container_id>
删除镜像:
bash
sudo docker rmi <image_id>
构建自定义镜像
创建 Dockerfile:
dockerfile
FROM ubuntu:latest
RUN apt update && apt install -y python3
CMD ["python3", "--version"]
构建镜像:
bash
sudo docker build -t my-python-image .
运行自定义镜像:
bash
sudo docker run my-python-image
数据卷和端口映射
挂载主机目录到容器:
bash
sudo docker run -v /host/path:/container/path ubuntu
映射主机端口到容器端口:
bash
sudo docker run -p 8080:80 nginx
容器网络
创建网络:
bash
sudo docker network create my-network
连接容器到网络:
bash
sudo docker run --network=my-network ubuntu
清理资源
删除所有停止的容器:
bash
sudo docker container prune
删除未被使用的镜像:
bash
sudo docker image prune -a
Docker Compose 使用
安装 Docker Compose:
bash
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
创建 docker-compose.yml 文件:
yaml
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: example
启动服务:
bash
sudo docker-compose up -d
停止服务:
bash
sudo docker-compose down