docker常见操作命令

警告
本文最后更新于 2023-02-23,文中内容可能已过时,请谨慎使用。

之前每次运行docker都需要使用root权限,使当前用户能够执行docker

sudo groupadd docker # 创建docker组
sudo usermod -aG docker $USER # 将当前用户加入组

重启服务器即可

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服务是否能自启动
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 container run -it ubuntu bash # 使用docker在bash上运行ubuntu

docker contianer ls 
docker container kill [containerId] # 终止ubuntu镜像(使用镜像ID)
docker search 镜像名称 #搜索镜像
docker pull 镜像名称:版本号 #拉取对应版本的镜像
docker pull 镜像名称 #默认拉取最新的镜像
docker images #查看本地已下载的镜像
docker rmi 镜像名称orID #删除镜像
docker rmi $(docker images -q) # 删除所有镜像

# 需要在DockerFile所在文件夹进行
docker build . --tag pyramid #构建一个名为pyramid镜像 .表示当前路径
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 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 exec -it <容器 ID> /bin/bash
# 默认使用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       

相关文章