Docker常用命令

目录

Dcoker基本概念

docker安装

配置镜像加速

docker cmd

Dockerfile构建镜像

Dcoker基本概念

Docker 包括三个基本概念:

  • 镜像(Image):Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

  • 仓库(Repository):仓库(Repository)类似Git的远程仓库,集中存放镜像文件

三者关系可以用下图表示:

docker安装

$ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

$ yum -y install docker-ce

$ systemctl enable docker && systemctl start docker

$ docker --version

配置镜像加速

[root@k8s-node2 ~]# vim /etc/docker/daemon.json

{ "registry-mirrors": [ "https://do.nark.eu.org", "https://dc.j8.work", "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn" ], "exec-opts": ["native.cgroupdriver=systemd"] }

systemctl daemon-reload systemctl restart docker

参考:

CentOS 7.9下安装Docker及常用镜像_docker centos7.9mini镜像-优快云博客

https://blog.youkuaiyun.com/qq_43721032/article/details/119134118

https://blog.youkuaiyun.com/allway2/article/details/121583352

docker cmd

1、容器

容器生命周期

  • 启动:启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。

  • 查看运行容器

    docker ps 列出本机运行的容器

docker ps -a 列出本机所有的容器(包括停止和运行)

  • 创建/启动/重启/关闭

docker run/start/restart /stop/ xxx

  • 杀死容器进程

    docker kill [容器ID]

  • 删除容器

    docker rm xxx

  • 查看日志

docker logs [容器ID]

  • 进入容器

    docker exec/attach

    # 如果从这个 stdin 中 exit,会导致容器的停止

    docker attach [容器ID]

    交互式进入容器

    docker exec [容器ID]

2、镜像

  • 检索镜像

    docker search 关键字

  • 获取镜像

    docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

  • 列出镜像

    docker images/image ls

  • 删除镜像

    docker rmi/image rm <镜像Id>

3、服务

  • 查看docker版本信息

docker version

  • 查看docker简要信息/版本

    docker -v

  • 启动/重启/关闭docker

    sytemctl start/restart/stop docker

  • 设置开启启动

    systemctl enable docker

Dockerfile构建镜像

Dockerfile 是一个文本格式的配 文件,用户可以使用 Dockerfile 来快速创建自定义的镜像。

Dockerfile 由一行行行命令语句组成,并且支持以#开头的注释行.

Dockerfile是一种能够被Docker程序解释的剧本。Dockerfile由一条一条的指令组成,并且有自己的书写格式和支持的命令。当我们需要在容器镜像中指定自己额外的需求时,只需在Dockerfile上添加或修改指令,然后通过docker build生成我们自定义的容器镜像(image)。

  • 构建类指令

    • 用于构建image

    • 其指定的操作不会在运行image的容器上执行(FROM、MAINTAINER、RUN、ENV、ADD、COPY)

  • 设置类指令

    • 用于设置image的属性

    • 其指定的操作将在运行image的容器中执行(CMD、ENTRYPOINT、USER 、EXPOSE、VOLUME、WORKDIR、ONBUILD)

  • 指令说明

指令描述
FROM构建新镜像基于的基础镜像
LABEL标签
RUN构建镜像时运行的Shell命令
COPY拷贝文件或目录到镜像中
ADD解压压缩包并拷贝
ENV设置环境变量
USER为RUN、CMD和ENTRYPOINT执行命令指定运行用户
EXPOSE声明容器运行的服务端口
WORKDIR为RUN、CMD、ENTRYPOINT、COPY和ADD设置工作目录
CMD运行容器时默认执行,如果有多个CMD指令,最后一个生效

docker build 命令可以使用以下选项:

-t :指定镜像的名称和标签。 -f :指定 Dockerfile 的路径或 URL。 -q :只显示镜像 ID。 -no-cache :不使用缓存构建镜像。 -build-arg :指定构建镜像时使用的参数。 -force-rm :在构建镜像时删除中间容器。 -target :指定构建镜像的目标阶段。

构建镜像demo

1、文件目录

root@try:~/dockerbuild/try# pwd
/root/dockerbuild/try
root@try:~/dockerbuild/try# ll
total 73192
drwxr-xr-x 2 root root     4096 Dec 27 14:33 ./
drwxr-xr-x 3 root root     4096 Dec 27 14:27 ../
-rw-r--r-- 1 root root      550 Dec 27 14:25 Dockerfile
-rw-r--r-- 1 root root 74933241 Dec 27 14:33 test.jar

2、创建DockerFile文件

# 使用 OpenJDK 17 基础镜像
FROM jre17:v1.0
​
# 设置工作目录
WORKDIR /app
​
# 暴露端口
EXPOSE 8081
​
# 设置容器内日志目录
RUN mkdir -p /app/logs
​
# 将构建的 JAR 文件添加到容器中
ADD test.jar /app/test.jar
​
# 设置启动命令
ENTRYPOINT ["java","-jar","-Xms512m","-Xmx512m","test.jar"]
​
# 设置时区为亚洲/上海
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone
​
#编译命令
# docker build -t test:v1.0 .
​
#启动命令 加时区
# docker run -e TZ="Asia/Shanghai" -d  --network host  --name vims-set-das-link  -p 8081:8081 -v /home/logs:/app/logs test:v1.0
# 启动命令
docker run  -d  --network host  --name test  -p 8081:8081 -v /home/logs:/app/logs test:v1.0

3、镜像构建

docker build -t test .

4、镜像运行

 docker run -d --network host -p 8081:8081 -v /home/logs:/app/logs test:v1.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

what_2018

你的鼓励是我前进的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值