Docker常见命令

时间:2021-08-20
本文章向大家介绍Docker常见命令,主要包括Docker常见命令使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

容器操作

列出本地容器进程

[root@localhost ~]# docker ps -a

docker run 命令格式和参数

命令格式:
docker run [OPTIONS] IMAGE [COMMAND]
参数:
OPTIONS选项
-i : 表示启动一个可交互的容器,并持续打开标准输入
-t : 表示使用终端关联到容器的标准输入输出上
-d : 表示将容器放置后台运行
--rm :退出后即删除容器
--name :表示定义容器唯一名称
IMAGE :表示要运行的镜像
COMMAND :表示启动容器时要运行的命令

交互式启动容器

[root@localhost ~]# docker run -it alpine:latest /bin/sh

后台非交互启动重命名

[root@localhost ~]# docker run -d --name my-alpine alpine:latest 

查看宿主机进程(前提得有这个进程启动)

[root@localhost ~]# ps aux | grep sleep| grep -v grep

使用交互式进入到指定容器终端

[root@localhost ~]# docker exec -it  f70734b6a266 /bin/sh

停止一个指定正在运行的容器

[root@localhost ~]# docker stop f70734b6a266

启动一个指定正在停止的容器

[root@localhost ~]# docker start  f70734b6a266

强制删除

[root@localhost ~]# docker rm -f myalpinen

查找已经停止退出的所有容器并删除

[root@localhost ~]# docker rm -fv  `docker ps -aq -f status=exited`

删除当前容器的所有容器

[root@localhost ~]# docker rm -fv `docker ps -aq`

把容器里面的文件cp出来到宿主机

[root@localhost ~]# docker cp 495ac14a43ae:/etc/nginx/nginx.conf /opt

把宿主机文件拷贝到容器里面

[root@localhost ~]# docker cp /opt/nginx.conf  495ac14a43ae:/etc/nginx/nginx.conf

查找已经停止退出的所有容器并删除

[root@localhost ~]# for i in `docker ps -a | grep -i exit | awk '{print $1}'`;do docker rm -f $i;done

固化到容器只读层

[root@localhost ~]# docker commit -p myalpine my-alpine:v3.10.3_with_1.txt /bin/sh

导出镜像

[root@localhost ~]# docker save dd26578fb4a8 > alpine:v3.10.3_with_1.txt.tar

导入镜像

[root@localhost ~]# docker load < alpine\:3.10.3_with.tar

打标签

[root@localhost ~]# docker tag f70734b6a266 alpine:3.10.3_with

查看容器日志 -f 动态输出

docker ps -a
[root@localhost ~]# docker logs -f dd26578fb4a8

给容器授予超级权限

[root@localhost ~]# docker run -it -d -p 88:80 --privileged=true nginx 

高阶操作:

映射端口 -p

docker run -p 宿主机端口:容器内端口

[root@localhost ~]# docker run --rm --name my-nginx -d -p 86:80 llxuan518/nginx:v1.16.6

挂载数据卷 -v

docker run -v 宿主机:容器内部

[root@localhost ~]# docker run --rm --name my-nginx -d -p 85:80 -v /root/html:/usr/share/nginx/html  llxuan518/nginx:v1.16.6

传递环境变量 -e

docker run -e 环境变量key:环境变量value(可以传多个)

[root@localhost ~]# docker run --rm  -e  E_OPTS=abcdef llxuan518/nginx:v1.16.6 printenv

容器内安装软件

/yum/apt-get/等等

查看docker内容信息

[root@localhost ~]# docker  inspect  dd26578fb4a8

下载(拉取)镜像

[root@localhost ~]# docker pull  nginx

推送(上传)镜像

[root@localhost ~]# docker push habor.longxuan.vip/N520/nginx:v1

构建镜像

[root@localhost ~]# docker build -t 新建的镜像名  父镜像:镜像的tag   Dockerfile文件所在路径

查看空间的占用

[root@localhost ~]# docker system df

常见命令:

查看镜像,后可跟 "| grep 内容",可根据内容进行筛选。如:

[root@localhost ~]# docker images ps
[root@localhost ~]# docker images | grep nginx

docker images [OPTIONS] [REPOSITORY[:TAG]]OPTIONS说明:-a: 列出本地所有的镜像--digests: 显示镜像的摘要信息-f: 显示满足条件的镜像--format: 指定返回值的模板文件--no-trunc: 显示完整的镜像信息-q: 只显示镜像ID

创建一个新的容器并运行一个命令docker run

docker run  [OPTIONS] IMAGE [COMMAND] [ARG...]OPTIONS说明:-d: 后台运行容器,并返回容器ID-i: 以交互模式运行容器,通常与 -t 同时使用-p: 指定端口映射,格式为:主机(宿主)端口:容器端口-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用--name "nginx": 为容器指定一个名称-h "localhost": 指定容器的hostname-e spring.profiles.active="dev": 设置环境变量--env-file=[]: 从指定文件读环境变量-m :设置容器使用内存最大值--volume /home/data:/etc/data :  绑定一个卷and so on

例如:

[root@localhost ~]# docker run -d -t -p 80:80 -v /home/data:/usr/data --name nginx nginx:latest

创建一个新的容器但不启动它

[root@localhost ~]# docker create containerName

停止一个运行的容器docker

[root@localhost ~]# docker stop containerName

重启一个容器docker restart

[root@localhost ~]# docker restart containerName

启动一个被停止的容器docker start

[root@localhost ~]# docker start containerName

docker ps命令

docker ps [OPTIONS]: 列出容器OPTIONS说明:-a: 显示所有的容器,包括未运行的-f: 根据条件过滤显示的内容--format: 指定返回值的模板文件-l: 显示最近创建的容器-n: 列出最近创建的n个容器--no-trunc: 不截断输出-q: 静默模式,只显示容器编号-s: 显示总的文件大小

查看所有容器

[root@localhost ~]# docker ps -a

查看正在运行的容器

[root@localhost ~]# docker ps

docker exec: 进入一个运行中的容器执行命令如:

[root@localhost ~]# docker exec -it 容器id sh or bash or /bin/bash表示在容器中开启一个交互模式的终端

删除一个容器,可加-f 表示强制

[root@localhost ~]# docker rm -fv

并删除挂载卷删除所有停止的容器:

[root@localhost ~]# docker rm $(docker ps -a -q)

删除一个镜像,可加-f 表示强制

[root@localhost ~]# docker rmi xxx

docker inspect : 获取容器/镜像的元数据如:

docker inspect [OPTIONS] NAME|ID [NAME|ID...]OPTIONS说明:-f: 指定返回值的模板文件-s: 显示总文件大小-type: 为指定类型返回json数据
获取正在运行的容器 nginx 的 IP:docker inspect --format='{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' nginx

docker kill: 杀死一个运行中的容器如:

[root@localhost ~]# docker kill nginx

docker logs: 获取容器的日志如:

[root@localhost ~]# docker logs -f -t 容器id or docker logs -f -t --tail=100 容器id

docker build: 命令用于使用 构建Dockerfile 镜像

创建镜像docker build [OPTIONS] PATH | URL | -OPTIONS说明:-f: 指定要使用的Dockerfile路径-m: 设置内存最大值--memory-swap: 设置Swap的最大值为内存+swap,"-1"表示不限swap--no-cache: 创建镜像的过程不使用缓存--pull: 尝试去更新镜像的新版本-q: 安静模式,成功后只输出镜像 ID--rm: 设置镜像成功后删除中间容器--shm-size: 设置/dev/shm的大小,默认值是64M--tag: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签--network: 默认 default。在构建期间设置RUN指令的网络模式
[root@localhost ~]# docker build -t 镜像标签名 .
[root@localhost ~]# docker build -t nginx:latest .
[root@localhost ~]# docker build -f /path/xxx/Dockerfile .

docker tag: 标记本地镜像,将其归入某一仓库

[root@localhost ~]# docker tag nginx nginx:old

将指定镜像保存成 tar 归档文件,命令导出的镜像

[root@localhost ~]# docker save -o nginx.tar nginx:latest

或者使用

[root@localhost ~]# docker save > nginx.tar nginx:latest

导入使用

[root@localhost ~]# docker load -i tar文件名

或者使用

[root@localhost ~]# docker load  < /opt/mysql-5.6.38-dockerimage.tar.gz

查看docker环境信息

[root@localhost ~]# docker info

查看docker版本信息

[root@localhost ~]# docker version

docker login: 登录一个Docker镜像仓库docker login -u 用户名 -p 密码,退出登录

[root@localhost ~]# docker logout

拉取或者更新指定镜像 -a 拉取所有的tag的镜像

[root@localhost ~]# docker pull nginx

将本地的镜像上传到镜像仓库

[root@localhost ~]# docker push 

原文地址:https://www.cnblogs.com/xuanlv-0413/p/15168095.html