Docker常用命令

Docker安装

卸载旧版本

sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

卸载历史版本

sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

sudo rm -rf /var/lib/docker

sudo rm -rf /var/lib/containerd

sudo rm -rf /data/var/lib/docker

sudo rm -rf /etc/docker/daemon.json

配置仓库

ll /etc/yum.repos.d/

sudo yum install -y yum-utils

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

配置使用国内源

sed -i 's@//download.docker.com@//mirrors.ustc.edu.cn/docker-ce@g' /etc/yum.repos.d/docker-ce.repo

安装docker最新版本

sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

创建docker镜像安装目录

mkdir -p /data/var/lib/docker

docker镜像源和安装目录修改

vim /etc/docker/daemon.json

输入下面内容

{
        "registry-mirrors": [
                "https://docker.mirrors.ustc.edu.cn/"
        ],
        "data-root": "/data/var/lib/docker"
}

启动docker

#配置加载

sudo systemctl daemon-reload

#启动服务

sudo systemctl start docker

#开启启动

sudo systemctl enable docker

#查看服务状态

sudo systemctl status docker

查看docker版本

docker version

查看docker信息

docker info

Docker镜像

登录login

docker login [server] -u 用户名 -p 密码 

未指定docker server地址,默认登录docker hub

拉取镜像pull

docker pull name:tag

推送镜像push

docker push name:tag 

查询镜像search

docker search name 

登出仓库logout

docker logout [server]

未指定docker server地址,默认登录docker hub

标记本地镜像归入仓库tag

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] 

docker images 查看镜像列表

docker images [OPTIONS] [REPOSITORY[:TAG]]

○ -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);

○ --digests :显示镜像的摘要信息;

○ -f :显示满足条件的镜像;

○ --format :指定返回值的模板文件;

○ --no-trunc :显示完整的镜像信息;

○ -q :只显示镜像 ID

docker history 查看镜像分层

docker history [OPTIONS] IMAGE

○ -H , --human :大小和日期采用人容易读的格式展现;

○ --no-trunc :显示全部信息,不要隔断;

○ -q, --quiet: 只显示镜像 id 信息;

docker image inspect 查看镜像详细信息

docker image inspect [OPTIONS] IMAGE [IMAGE...]

○ -f :指定返回值的模板文件。如 table、json

○ -s :显示总的文件大小。

docker inspect 会自动检查是镜像还是容器然后显示相信信息

docker rmi 删除镜像

docker rmi [OPTIONS] IMAGE [IMAGE...]

○ -f :强制删除;

○ --no-prune :不移除该镜像的过程镜像,默认移除;

docker image prune 删除未使用镜像

docker image prune [OPTIONS]

○ -a , --all : 删除全部不使用的镜像;

○ --filter filter:指定过滤条件;

○ -f, --force :不提示是否删除;

docker save / docker load 镜像归档/导入

docker save [OPTIONS] IMAGE [IMAGE...]

○ -o :输出到的文件。

docker load [OPTIONS]

○ --input , -i : 指定导入的文件,代替 STDIN。

○ --quiet , -q : 精简输出信息。

docker export / docker import镜像导出/导入

docker export [OPTIONS] CONTAINER

○ -o:写入到文件。

docker import [OPTIONS] file [REPOSITORY[:TAG]]

○ -c :应用 docker 指令创建镜像;

○ -m :提交时的说明文字

docker build 创建镜像 

docker build [OPTIONS] PATH

○ --build-arg=[] :设置镜像创建时的变量;

○ -f :指定要使用的 Dockerfile 路径;

○ --label=[] :设置镜像使用的元数据;

○ --no-cache :创建镜像的过程不使用缓存;

○ --pull :尝试去更新镜像的新版本;

○ --quiet, -q :安静模式,成功后只输出镜像 ID;

○ --rm :设置镜像成功后删除中间容器;

○ --tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。

○ --network: 默认 default。在构建期间设置 RUN 指令的网络模式

Docker容器

docker run / docker create 运行/创建容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

○ -d: 后台运行容器,并返回容器 ID;

○ -i: 以交互模式运行容器,通常与 -t 同时使用;

○ -P: 随机端口映射,容器内部端口随机映射到主机的端口

○ -p: 指定端口映射,格式为:主机(宿主)端口:容器端口

○ -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

○ --name="nginx-lb": 为容器指定一个名称;

○ -h "mars": 指定容器的 hostname;

○ -e username="ritchie": 设置环境变量;

○ --cpuset-cpus="0-2" or --cpuset-cpus="0,1,2": 绑定容器到指定 CPU 运行;

○ -m :设置容器使用内存最大值;

○ --network="bridge": 指定容器的网络连接类型;

○ --link=[]: 添加链接到另一个容器;

○ --volume , -v: 绑定一个卷

○ --rm :shell 退出的时候自动删除容器

docker run = docker create + docker start

docker start / stop / kill / restart 启动/停止容器

docker start CONTAINER [CONTAINER...]

docker stop [OPTIONS] CONTAINER [CONTAINER...]

docker kill [OPTIONS] CONTAINER [CONTAINER...]

docker restart [OPTIONS] CONTAINER [CONTAINER...]

○ -s :发送的信号

docker pause / docker unpause 暂停/恢复容器

docker pause CONTAINER [CONTAINER...]

docker unpause CONTAINER [CONTAINER...]

docker ps 查看容器列表

docker ps [OPTIONS]

○ -a :显示所有的容器,包括未运行的。

○ -f :根据条件过滤显示的内容。

○ --format :指定返回值的模板文件。如 json 或者 table

○ -l :显示 latest 的容器。

○ -n :列出最近创建的 n 个容器。

○ --no-trunc :不截断输出。

○ -q :静默模式,只显示容器编号。

○ -s :显示总的文件大小。

docker container inspect 查看容器详细信息

docker container inspect [OPTIONS] CONTAINER [CONTAINER...]

○ -f :指定返回值的模板文件。如 table、json

○ -s :显示总的文件大小。

docker rm 删除容器

docker rm [OPTIONS] CONTAINER [CONTAINER...]

○ -f :通过 SIGKILL 信号强制删除一个运行中的容器。

docker container prune 删除停止容器

docker container prune [OPTIONS]

○ -f, --force:不提示是否进行确认

docker rename 重命名容器 

docker rename CONTAINER NEW_NAME 

docker logs 查看容器日志

docker logs [OPTIONS] CONTAINER

○ -f ,--follow: 跟踪日志输出

○ --since :显示某个开始时间的所有日志

○ -t,--timestamps : 显示时间戳

○ -n,--tail :仅列出最新 N 条容器日志

docker attach 连接容器

docker attach [OPTIONS] CONTAINER

○ --sig-proxy:是否将所有信号代理,默认是 true,如果设置为 false,退出的话不会影响容器,否则退出会导致容器退出。

docker exec 在容器中执行命令

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

○ -d :分离模式: 在后台运行

○ -i :即使没有附加也保持 STDIN 打开

○ -t :分配一个伪终端

○ -e :设置环境变量

○ -u,--user :指定用户 "<name|uid>[:<group|gid>]"

○ -w,--workdir:指定工作目录

docker top 查看容器中进程信息

docker top CONTAINER [ps OPTIONS]

查看容器中运行的进程信息,支持 ps 命令参数

docker stats 查看容器使用资源信息

docker stats [OPTIONS] [CONTAINER...]

○ --all , -a :显示所有的容器,包括未运行的。

○ --format :指定返回值的模板文件。如 table,json

○ --no-stream :展示当前状态就直接退出了,不再实时更新。

○ --no-trunc :不截断输出。

返回报文:

CONTAINER ID 与 NAME: 容器 ID 与名称。

CPU % 与 MEM %: 容器使用的 CPU 和内存的百分比。

MEM USAGE / LIMIT: 容器正在使用的总内存,以及允许使用的内存总量。

NET I/O: 容器通过其网络接口发送和接收的数据量。

BLOCK I/O: 容器从主机上的块设备读取和写入的数据量。

PIDs: 容器创建的进程或线程数。

docker port 查看容器端口映射

docker port CONTAINER [PRIVATE_PORT[/PROTO]]  

docker cp 在容器和宿主机之间拷贝文件

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH

docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH

docker diff 查看容器文件结构更改

 docker diff CONTAINER

docker commit 从容器创建一个镜像

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

○ -a :提交的镜像作者;

○ -c :使用 Dockerfile 指令来创建镜像;可以修改启动指令

○ -m :提交时的说明文字;

○ -p :在 commit 时,将容器暂停。 

docker wait 阻塞运行容器

docker wait CONTAINER [CONTAINER...]

阻塞运行直到容器停止,然后打印出它的退出代码 

docker undate 更新容器配置

docker update [OPTIONS] CONTAINER [CONTAINER...]

○ --cpus:cpu 数量

○ --cpuset-cpus :使用哪些 cpu

○ --memory :内存限制

○ --memory-swap:交换内存

○ --cpu-period :是用来指定容器对 CPU 的使用要在多长时间内做一次重新分配

○ --cpu-quota:是用来指定在这个周期内,最多可以有多少时间用来跑这个容器

Docker存储卷

docker volume create 创建存储卷

docker volume create [OPTIONS] [VOLUME]

○ -d, --driver:指定驱动,默认是 local

○ --label:指定元数据

docker volume ls 查看卷列表

docker volume ls [OPTIONS]

○ --format:指定相应个格式,如 json,table

○ --filter,-f: 过滤

○ -q: 仅显示名称

docker volume inspect 查看卷详细信息

docker volume inspect [OPTIONS] VOLUME [VOLUME...]

○ -f:指定相应个格式,如 json 

docker volume rm 删除卷

docker volume rm [OPTIONS] VOLUME [VOLUME...]

○ -f,--force:强制删除

docker volume prune 删除未使用卷

docker volume prune [OPTIONS]

○ --filter:过滤

○ -f, --force :不提示是否删除

docker -v / --mount 绑定卷

docker run -v name:directory[:options] ...

○ 第一个参数:绑定卷为卷名称,创建卷为宿主机目录

○ 第二个参数:卷映射到容器的目录

○ 第三个参数:选项,如 ro 表示 readonly

--tmpfs directory

创建匿名卷,由内存管理,省略宿主机目录,指定容器目录即可。

--mount参数

--mount '<key>=<value>,<key>=<value>'

○ type : 类型表示 bind, volume, or tmpfs

○ source ,src :对于命名卷,绑定卷为卷名称,创建卷为宿主机目录。对于匿名卷,省略此字段。

○ destination,dst,target:文件或目录挂载在容器中的路径

○ ro,readonly: 只读方式挂载

如果是创建卷,宿主机目录会覆盖容器目录;

如果是绑定卷,会进行判断,如果宿主机目录为空,容器指定目录数据会给宿主机绑定卷目录拷贝一份;如果不为空,宿主机目录会覆盖容器目录。

Docker网络

docker network create 创建网络

docker network create [OPTIONS] NETWORK

○ -d, --driver:网络驱动,默认网桥bridge

网络类型:bridge,host,container,none,overlay

○ --gateway:网关地址,需要跟着指定

○ --subnet:表示网段的 CIDR 格式的子网

○ --ipv6:启用 ipv6

docker network ls 查看网络列表

docker network ls [OPTIONS]

○ -f, --filter:指定过滤条件

○ --format:指定格式

○ --no-trunc:不截断

○ -q, --quiet :仅仅显示 id

docker network inspect 查看网络详细信息

docker network inspect [OPTIONS] NETWORK [NETWORK...]

○ -f,--format:指定格式

docker network connect 容器连接网络

docker network connect [OPTIONS] NETWORK CONTAINER

○ --ip:指定 IP 地址

○ --ip6:指定 IPv6 地址

docker network disconnect 容器断开网络

docker network disconnect [OPTIONS] NETWORK CONTAINER

○ -f:强制退出

docker network rm 删除网络

docker network rm NETWORK [NETWORK...]

○ -f:强制退出

docker network prune 删除未使用网络

docker network prune [OPTIONS]

○ -f, --force :不提示

docker --network 指定网络类型

docker --network

网络类型:bridge,host,container,none,overlay

Docker编排

docker compose up 启动项目

docker compose up [options] [SERVICE...]

-d 在后台运行服务容器, 推荐在生产环境下使用该选项

--force-recreate 强制重新创建容器,不能与 --no-recreate 同时使用

--no-recreate 如果容器已经存在了,则不重新创建,不能与 --force-recreate 同时使用

docker compose down 关闭并删除项目

docker compose down [options] [SERVICE...]

-v, --volumes 删除容器同时删除目录映射

docker compose run 指定容器执行命令

docker compose run [options] SERVICE [COMMAND] [ARGS...]

-d 后台运行容器

--name NAME 为容器指定一个名字

--entrypoint CMD 覆盖默认的容器启动指令

-e KEY=VAL 设置环境变量值,可多次使用选项来设置多个环境变量

-u, --user="" 指定运行容器的用户名或者 uid

--rm 运行命令后自动删除容器

-p, --publish=[] 映射容器端口到本地主机

compose命令链接:Docker run reference | Docker Docs

compose配置链接:Compose file | Docker Docs

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值