docker常见操作命令
目录
警告
本文最后更新于 2023-02-23,文中内容可能已过时,请谨慎使用。
免sudo使用docker
之前每次运行docker都需要使用root权限,使当前用户能够执行docker
sudo groupadd docker # 创建docker组
sudo usermod -aG docker $USER # 将当前用户加入组
重启服务器即可
docker服务管理
sudo systemctl start | stop | restrart docker.service # 开启/关闭/重启 docker服务
docker version # 查看docker版本
sudo systemctl enable docker # 开机自启docker
sudo systemctl disable docker # 关闭开机自启docker
sudo systemctl list-unit-files # 查看本机上所有自启动服务
sudo systemctl list-unit-files | grep docker # 查看docker服务是否能自启动
docker升级和卸载
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras # 删除docker
sudo rm -rf /var/lib/docker # 删除运行的临时文件
sudo rm -rf /var/lib/containerd
sudo apt autoremove # 删除相关的依赖包
sudo apt-get install docker-ce docker-ce-cli containerd.io # 安装最新版本的docker-CE和containerd
sudo docker run hello-world # 运行hello-world镜像检查是否安装成功
sudo apt-get update # 升级系统中的软件
sudo apt-get upgrade
docker使用Ubuntu镜像
docker container run -it ubuntu bash # 使用docker在bash上运行ubuntu
docker contianer ls
docker container kill [containerId] # 终止ubuntu镜像(使用镜像ID)
docker镜像
docker search 镜像名称 #搜索镜像
docker pull 镜像名称:版本号 #拉取对应版本的镜像
docker pull 镜像名称 #默认拉取最新的镜像
docker images #查看本地已下载的镜像
docker rmi 镜像名称orID #删除镜像
docker rmi $(docker images -q) # 删除所有镜像
# 需要在DockerFile所在文件夹进行
docker build . --tag pyramid #构建一个名为pyramid镜像 .表示当前路径
docker容器
docker ps #查看正在运行的容器
docker ps -a #查看所有的容器(包括run、stop、exited状态的)
docker container ls #查看正在运行的容器
docker start 容器ID #启动容器
docker stop 容器ID #终止容器
docker rm 容器ID #只能删除没有在运行的容器
docker rm -f 容器ID #可以删除正在运行的容器(强制删除)
docker container update --restart=always 容器名 #设置容器开机自启动
docker run -p 本地主机端口号:容器服务端口号 --name 容器名字 [-e 配置信息修改] -d 镜像名字 --restart=always # 启动一个新的容器
docker stop $(docker ps -aq) #暂停所有容器
docker rm $(docker ps -aq) # 删除所有容器
docker容器设置自启动
将运行中的容器设为自启动
# docker update --restart=always 容器名或容器ID
docker update --restart=always <CONTAINER ID>
# 例如将tomcat设为自启动
docker update --restart=always mysql
将自启动的容器取消自启动
# docker update --restart=no 容器名或容器ID
docker update --restart=no <CONTAINER ID>
# 例如取消mysql的自启动
docker update --restart=no tomcat
docker启动一个远程shell
docker exec -it <容器 ID> /bin/bash
docker-compose命令
# 默认使用docker-compose.yml构建镜像
docker compose build
docker compose build --no-cache # 不带缓存的构建
# 指定其他yml文件模板构建(重新构建)项目中的服务容器。
docker compose build -f docker-compose1.yml
# 列出docker-compose.yml构建的镜像
docker compose images
# 前台启动,可查看控制台输出
docker compose up
# 后台启动
docker compose up -d
# 查看正在运行中的容器
docker compose ps
# 查看所有编排容器,包括已停止的容器
docker compose ps -a
# 进入指定容器执行命令
docker-compose exec 服务id bash
# 查看web容器的实时日志
docker compose logs -f web
# 停止和删除容器以及网络相关
docker-compose down # 关闭所有容器
docker-compose down 服务id # 关闭某一个服务
# 停止正在运行的容器,可以通过docker compose start 再次启动
docker compose stop web
# 停止所有up命令启动的容器,并移除数据卷
docker compose down -v
# 重新启动停止服务的容器
docker compose restart web
# 暂停web容器
docker compose pause web
# 恢复web容器
docker compose unpause web
# 删除web容器,删除前必需停止stop web容器服务
docker compose rm web
# 查看各个服务容器内运行的进程
docker compose top