docker 基础命令使用(ubuntu)

docker 状态查询

bash 复制代码
docker ps
docker ps -a

docker --version
docker info
docker --help
docker run --help
docker ps --help
...

docker 操作镜像命令

bash 复制代码
docker images

docker rmi 镜像id/镜像名

docker 操作容器命令

bash 复制代码
docker ps
docker ps -a

docker run 命令

bash 复制代码
# 端口映射 -p 参数
# 左边80是宿主机, 右边80是容器内部端口, 最后一个 nginx 是镜像名
docker run -d -p 80:80 nginx
docker run -d -p 80:80 --name nginx01 nginx

# 自动端口映射 -P 参数
# -P 表示暴漏出容器内部所有的端口, 并随机映射到宿主机的端口
docker run -d -P --name nginx01 nginx


docker start 容器id/容器名
docker stop 容器id/容器名


docker rm 容器id/容器名
docker rm -f 容器id/容器名

docker run 容器异常退出后/挂掉自动删除( --rm 参数)

bash 复制代码
docker run --rm -d -p 80:80 --name nginx02 nginx 

docker stop nginx02  # 容器会自动删除, 即 docker ps -a 命令看不到

docker 重启策略( --restart 参数 ), 三种重启策略

  • no: 容器退出后不重启
  • on-failure: 容器退出后, 一定次数内重启, 可以加上 :3, 表示最多重启3次
  • always: 容器退出后, 一直重启
bash 复制代码
# always 会一直启动, 即开机自启
docker run --restart always -d -p 80:80 --name nginx02 nginx 
# on-failure 模式不会开机自启
docker run --restart on-failure:3 -d -p 80:80  --name nginx02 nginx

# 注意命令: docker stop 容器id/容器名 属于正常退出, 不会触发重启策略, 意外退出才会触发

docker run 启动时加入环境变量

bash 复制代码
# docker inspect 容器id/容器名   查看容器配置信息
docker inspect nginx02

# -e 参数, 添加环境变量, 多个环境变量用多个 -e 参数 (也可以用 -env 参数, 效果与 -e 参数一样)
docker run -d -p 81:80 --name nginx_env -e HTTP_PROXY=http://172.30.xxx.xxx:7892 -e HTTPS_PROXY=http://172.30.xxx.xxx:7892 -e NO_PROXY=localhost,127.0.0.1 --restart always nginx

docker inspect nginx_env

或者

docker exec -it nginx_env bash
docker exec -it nginx_env env

docker run 限制容器资源使用

bash 复制代码
# 内存限制
## -m 100m  # 限制内存使用100m (单位可以是 b, k, m, g) 
docker run -d -p 83:80 --name nginx_mem -m 2m --rm nginx
docker run -d -p 83:80 --name nginx_mem -m 8m --rm nginx

## 查看容器内存使用情况
docker stats 容器id/容器名
docker stats nginx_mem

# cpu 限制
## --cpus 1 # 限制cpu使用1个核
docker run -d -p 84:80 --name nginx_mem_cpu -m 8m --cpus 1 --rm nginx

docker logs 查看容器日志

bash 复制代码
docker logs --help
docker logs 容器id/容器名
docker logs -f 容器id/容器名  # -f 参数, 实时查看日志

进入容器内部 docker exec -it 容器id/容器名 bash/其他命令

bash 复制代码
docker exec -it 容器id/容器名 bash
docker exec -it 容器id/容器名 env

docker 启动一个系统镜像作为一个容器

bash 复制代码
# 拉取
docker pull ubuntu
docker pull centos
docker pull debian

# 拉取镜像后,可以使用 docker run 命令启动一个新容器。以下是启动 Ubuntu 容器的示例:
docker run -d -P --rm --name ubuntu_container1 ubuntu tail -f /dev/null      # tail -f /dev/null 是为了保持容器一直挂起运行, 若容器内没有服务, 容器会自动退出
docker run -d -P --rm --name centos_container1 centos tail -f /dev/null
docker run -d -P --rm --name centos_container2 centos tail -f /dev/null

docker 进阶命令见:docker 进阶命令(基于Ubuntu)

相关推荐
suamt2 分钟前
记录windows下如何运行docker程序
运维·docker·容器
C_心欲无痕10 分钟前
ts - 模板字面量类型与 `keyof` 的魔法组合:`keyof T & `on${string}`使用
linux·运维·开发语言·前端·ubuntu·typescript
特立独行的猫a12 分钟前
低成本搭建鸿蒙PC运行环境:基于 Docker 的 x86_64 服务器
docker·容器·harmonyos·鸿蒙pc
ghostwritten16 分钟前
Kubernetes 网络模式深入解析?
网络·容器·kubernetes
鋆雨无欢丶1 小时前
docker证书认证问题
运维·docker·容器
阿杰 AJie1 小时前
Docker 容器启动的全方位方法汇总
运维·docker·容器
原神启动11 小时前
K8S(七)—— Kubernetes Pod 基础概念与实战配置
云原生·容器·kubernetes
我的golang之路果然有问题1 小时前
Docker 之常用操作(实习中的)
java·运维·笔记·docker·容器·eureka
Stark-C1 小时前
密码管理器的尽头,是自托管!极空间私有化部署『password-XL』
docker
牛奔1 小时前
Docker 容器无法停止的排障与解决全过程
运维·docker·云原生·容器·eureka