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)

相关推荐
码上上班7 分钟前
k8s控制器,daemonset
云原生·容器·kubernetes
F1FJJ9 分钟前
一个 CLI 工具的开源迭代记录:从单二进制到全平台分发
网络·网络协议·docker·golang·开源·开源软件
码上上班9 分钟前
k8s中安装metrics,实现hpa
容器·kubernetes·excel
春日见19 分钟前
自动驾驶的四个演进阶段
开发语言·人工智能·驱动开发·matlab·docker·计算机外设
H_老邪41 分钟前
Docker 学习之路-从入门到放弃:2
学习·docker·容器
秦渝兴1 小时前
用 Docker Compose 一键部署高可用集群(MySQL + Tomcat + Nginx)
运维·mysql·nginx·docker·容器·tomcat
深念Y1 小时前
Docker Desktop 版本与 IDEA 插件兼容性
docker·云原生·容器·api·idea·wsl
lijwsunyt1 小时前
Ubuntu虚拟机部署OpenClaw全踩坑实录|本地访问+模型配置一站式解决
linux·运维·ubuntu
风清云淡_A2 小时前
【NODE】docker部署后端java项目实战基础版
docker·node