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)

相关推荐
高山莫衣30 分钟前
Docker Desktop导致存储空间不足时的解决方案
docker·容器·eureka
鹏大师运维31 分钟前
在银河麒麟V10 SP1上手动安装与配置高版本Docker的完整指南
linux·运维·docker·容器·麒麟·统信uos·中科方德
lovely_nn33 分钟前
docker 介绍
docker·k8s
Ahlson36 分钟前
【fnNAS】docker的nginx配置html
nginx·docker·容器·fnnas
LuckyLay36 分钟前
Compose 常用命令详解——AI教你学Docker
docker·容器·eureka
moppol1 小时前
容器化 vs 虚拟机:什么时候该用 Docker?什么时候必须用 VM?
运维·docker·容器
没有名字的小羊1 小时前
7.可视化的docker界面——portainer
docker·容器·eureka
ZPC82101 小时前
ubuntu 6.8.0 安装xenomai3.3
linux·运维·ubuntu
谷新龙0011 小时前
大数据环境搭建指南:基于 Docker 构建 Hadoop、Hive、HBase 等服务
大数据·hadoop·docker
电脑能手2 小时前
遇到该问题:kex_exchange_identification: read: Connection reset`的解决办法
linux·ubuntu·ssh