docker常用命令
# 安装docker-compose
$ sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#将可执行权限应用于二进制文件:
$ sudo chmod +x /usr/local/bin/docker-compose
# 创建软链:
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 测试是否安装成功:
$ docker-compose version
sudo apt install docker.io
docker --version
sudo groupadd docker
sudo usermod -aG docker $USER
sudo systemctl start docker
sudo systemctl stop docker
sudo systemctl restart docker
sudo systemctl status docker
sudo systemctl enable docker # 随系统启动
/etc/docker/daemon.json # 配置仓库镜像,dockerhub.io经常访问不到
docker pull ubuntu:18.04
docker images
docker search ubuntu
# 构建镜像
docker build -t galepai/web-flask:1.0 . -f dockfile
# 不使用缓存构建
docker build -t galepai/web-flask:1.0 . -f dockfile --no-cache
# 运行镜像,主机80端口映射镜像8000端口
docker run -p 80:8000 galepai/web-flask:1.0
# 运行镜像,共享主机网络,共用端口
docker run --network=host galepai/web-flask:1.0
# 后台运行
docker run -d -p 80:8000 galepai/web-flask:1.0
# -v 宿主机目录:容器目录(容器里原先不存在的路径目录)
docker run --name containername -p 80:8099 -v /home/docker:/data/django-project/Watch/logs galepai/watch:1.0
# 进入镜像,
docker run -ti containername<id> bash
docker cp nginx:/etc/nginx/nginx.conf ./ # 复制镜像或者容器里的文件到当前目录下
docker cp nginx:/etc/nginx/conf.d/default.conf ./conf/ # 复制镜像或者容器里的文件到当前目录conf下
# 查看容器
docker ps # 显示运行的容器
docker ps -a # 显示所有未删除的容易(包含运行和退出)
docker ps -aq # 只显示id
# 容器启动、重新启动 、停止
docker start containername<id> # 后台
docker attach containername<id> # 转到前台,ctrl+d, 停止容器
docker start -a containername<id> # 前台,ctrl+d, 不会停止容器
docker restart containername<id>
docker exec -it containername<id> /bin/bash # 进入容器的shell,exit退出
docker stop $(docker ps -aq)
docker log -f containername<id> # 实时查看后台日志
# 删除容器
docker rm c87
# 删除所有容器
docker rm $(docker ps -aq)
# 删除镜像
docker rmi ubuntu:22.04<id>
# 删除<none>镜像,需提前清除冲突的容器
docker image prune
# 保存镜像
docker save -o my_image.tar my_image:tag
# 加载镜像
docker load -i my_image.tar
# dockerfile 示例 FROM galepai/web-django:1.0 LABEL MAINTAINER=galepai@163.com # cv2 need RUN apt install libgl1-mesa-glx -y # 时区配置文件,asia/shanghai, tzdata的配置文件 COPY localtime /etc/ RUN apt install tzdata -y # 复制工程文件 ENV PROJECT_DIR=/data/django-project/Watch RUN mkdir -p $PROJECT_DIR COPY Watch $PROJECT_DIR WORKDIR $PROJECT_DIR CMD ["python3","manage.py","runserver","0.0.0.0:8000","--noreload"]
# 国内可用镜像仓库地址,https://docker.m.daocloud.io,可以直接拉 docker pull m.daocloud.io/docker.io/library/nginx
# /etc/docker/docker.daemon
{ "registry-mirrors": [ "https://docker.hpcloud.cloud", "https://docker.m.daocloud.io", "https://docker.unsee.tech", "https://docker.1panel.live", "http://mirrors.ustc.edu.cn", "https://docker.chenby.cn", "http://mirror.azure.cn", "https://dockerpull.org", "https://dockerhub.icu", "https://hub.rat.dev" ] }