Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上。
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# CentOS/RHEL
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
# 搜索镜像
docker search [镜像名]
# 拉取镜像
docker pull [镜像名]:[标签]
# 列出本地镜像
docker images
# 删除镜像
docker rmi [镜像ID]
# 运行容器
docker run [选项] [镜像名]
# 常用选项
-d 后台运行
-p 端口映射
-v 卷挂载
--name 指定容器名称
# 列出运行中的容器
docker ps
# 列出所有容器(包括停止的)
docker ps -a
# 停止容器
docker stop [容器ID/名称]
# 启动已停止的容器
docker start [容器ID/名称]
# 删除容器
docker rm [容器ID/名称]
# 进入运行中的容器
docker exec -it [容器ID/名称] /bin/bash
Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。
# Linux
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
# Windows/macOS: Docker Desktop已包含
version: '3'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
docker-compose up -d
docker-compose down
docker run --name mynginx -p 8080:80 -d nginx
docker run --name mymysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:5.7
FROM node:14
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
CMD ["npm", "start"]
docker build -t my-node-app .
docker run -p 3000:3000 -d my-node-app
# 列出网络
docker network ls
# 创建网络
docker network create my-network
# 将容器连接到网络
docker network connect my-network my-container
# 断开容器与网络的连接
docker network disconnect my-network my-container
# 创建数据卷
docker volume create my-vol
# 列出数据卷
docker volume ls
# 使用数据卷
docker run -d --name myapp -v my-vol:/app my-image
docker run -d --name myapp -v /path/on/host:/path/in/container my-image
docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:ro --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --volume=/dev/disk/:/dev/disk:ro --publish=8080:8080 --detach=true --name=cadvisor google/cadvisor:latest
sudo usermod -aG docker $USER
docker run -p 8080:80 ...
docker logs [容器ID]
docker system prune
希望这个教程能帮助你快速上手Docker管理器的使用!