docker
- 文档
- 安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun或curl -sSL https://get.daocloud.io/docker | sh
常用命令
sh
docker pull ubuntu # 载入 ubuntu 镜像
docker run -it ubuntu /bin/bash # 使用 ubuntu 镜像启动一个容器,-i: 交互式操作,-t: 终端
docker rmi id # 删除镜像
docker ps # 查看正在运行的容器
docker ps -a # 查看所有的容器
docker start id # 启动容器
docker restart id # 重启容器
docker stop id # 停止容器
docker rm -f id # 删除容器
docker exec -it id /bin/bash # 进入容器
docker run -itd --name ubuntu-test ubuntu /bin/bash # -d: 不会进入容器,后台运行
docker inspect test # 查看容器详细信息网络
sh
docker network create -d bridge test-net # 新建网络
docker network ls # 查看网络
docker run -itd --name ubuntu-test --network test-net ubuntu /bin/bash # --network: 设置网络容器
sh
docker rm -f id # 删除容器
docker rmi REPOSITORY:TAG # 删除镜像
docker build -t hsiangleev/httptest:v1 . # 构建容器(.为查找当前目录下的Dockerfile)
docker run --name test -d -p 127.0.0.1:3000:3000 hsiangleev/httptest:v1 # 运行容器文件传输
sh
docker cp container_id:docker容器内的路径 本地保存文件的路径
docker cp 本地文件的路径 container_id:docker容器内的路径挂载本地文件
sh
docker run -itd --name docs -p 8080:80 \
--mount type=bind,source=/web/docker/default.conf,target=/etc/nginx/nginx.conf \
--mount type=bind,source=/web/docker/dist,target=/usr/share/nginx/html \
nginx数据卷
sh
docker volume create docs # 新建数据卷
docker volume ls # 查看所有数据卷
docker volume inspect docs # 查看数据卷详细信息
docker volume rm docs # 删除数据卷
docker volume prune # 删除未被使用的数据卷sh
docker run -itd --name test -p 8080:80 \
--mount source=docs,target=/usr/share/nginx/html \
nginxdocker-compose
sh
docker compose down -v # 停止并删除容器(-v: 删除镜像卷)
docker compose pull # 重新拉取镜像(更新)
docker compose up -d # 构建启动
docker inspect 容器id | grep com.docker.compose # 查询docker.compose的文件路径操作compose中的某个服务
sh
docker compose ps # 查看compose服务信息
docker compose restart 服务名 # 重启compose某个服务
docker compose stop 服务名 # 停止compose某个服务
docker compose pull 服务名 # 重启compose某个服务
docker compose up -d 服务名 # 重建compose某个服务常用软件
sh
nginx: docker run -itd --name nginx -p 80:80 --mount type=bind,source=E:\program\docker\nginx\conf\nginx.conf,target=/etc/nginx/nginx.conf --mount type=bind,source=E:\program\docker\nginx\html,target=/usr/share/nginx/html nginx
gitlab: docker run -d -p 80:80 --name gitlab --restart unless-stopped --volume E:\program\docker\gitlab\etc:/etc/gitlab --volume E:\program\docker\gitlab\log:/var/log/gitlab --volume E:\program\docker\gitlab\data:/var/opt/gitlab gitlab/gitlab-ce:16.9.1-ce.0
gotenberg(pdf转换): docker run -itd --name gotenberg -p 6081:3000 gotenberg/gotenberg:8常用compose示例
yaml
services:
ubuntu:
image: ubuntu:24.04
stdin_open: true # 相当于 docker run -i
tty: true # 相当于 docker run -t
ports:
- 18810:8100
environment:
- TZ=Asia/Shanghaiyaml
services:
nginx:
image: nginx:alpine
container_name: nginx
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./web:/web
ports:
- "1888:80"
environment:
- TZ=Asia/Shanghai镜像加速
常用镜像
json{ "registry-mirrors": [ "https://docker.1ms.run", "https://dockerproxy.cn", "https://k-docker.asia", "https://docker.ketches.cn" ] }
设置时区
docker run -e TZ=Asia/Shanghai your_image_name在docker-compose.yml文件中
ymlservices: immich-server: environment: - TZ=Asia/Shanghai
自动重启策略
restart:
| 属性名 | 说明 |
|---|---|
| no | 默认值,不自动重启容器。 |
| always | 不管退出原因,都会自动重启容器(包括手动 docker restart、系统重启后也会启动)。 |
| on-failure | 只有当容器 非 0 状态退出(出错) 时才重启。可以配合次数限制(如 on-failure:3)。 |
| unless-stopped | 和 always 类似,但如果你手动停止了容器(docker stop),即使系统重启也不会重新启动。 |