Docker常用命令

docker,常用命令 · 浏览次数 : 49

小编点评

**1. 前置条件** * Ubuntu 20.04 操作系统 * 拥有 root 权限 **2. 学习 Docker 查看容器** * 使用 `docker ps` 命令查看所有容器:`docker ps` * 使用 `docker ps -a` 命令进入容器的内部:`docker ps -a` **3. 使用 `docker exec` 命令进入容器** * 使用 `docker exec` 命令附着到运行着的容器内部:`docker exec -it nginx_latest bash` **4. 使用 `docker build` 命令构建镜像** * 使用 `docker build -t [镜像名]:[版本号][Dockerfile所在目录]` 命令构建镜像,例如:`docker build -t nginx:v0.2 /opt/dockerfile/nginx/` **5. 使用 `docker run` 命令启动容器** * 使用 `docker run` 命令启动新容器,例如:`docker run -p 3000:80 --name exampleApp3000 yoyomooc/exampleapp` **6. 使用 `docker rm` 命令删除镜像** * 使用 `docker rm` 命令删除指定 id 的镜像,例如:`docker rm $(docker ps -a -q)` **7. 查看镜像** * 使用 `docker images` 命令查看所有镜像,可以指定 id 来查看特定镜像,例如:`docker images nginx:v0.2` **8. 使用 `docker rmi` 命令删除容器** * 使用 `docker rmi <image id>` 命令删除镜像。 **9. 使用 `docker tag` 命令将镜像标签给一个新镜像,例如:`docker tag vis 仓库名:版本推到镜像仓库:` **10. 使用 `docker push` 命令将镜像发布到 Docker Hub,例如:`docker push 仓库名:版本3、Dockerfile语法FROM格式为FROM <image>或FROM <image>:<tag>`

正文

1、前置条件

ubuntu 20.04 一键安装dockcer

  curl -sSL https://get.daocloud.io/docker | sh

2、学习Docker

查看容器:

  docker ps 

查看所有容器:

  docker ps -a

进入容器的内部

  docker exec -it nginx_latest bash
  //exec:附着到运行着的容器内部
  //-it:-i 与 -t两个参数合并写法,-i -t 标志着为我们指定的容器创建了TTY并捕捉了STDIN
  //nginx_latest:是我们要进入的容器的名字。当然也可以写7934(ID)
  //bash:指定执行命令的shell。也可以写为:/bin/bash
————————————————
版权声明:本文为CSDN博主「IT利刃出鞘」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/feiying0canglang/article/details/116203017

查看镜像

  docker images

创建一个镜像

 //构建镜像命令格式:
 docker build -t [镜像名]:[版本号][Dockerfile所在目录]
 //构建样例:
 docker build -t nginx:v0.2 /opt/dockerfile/nginx/
 //参数详解:
   -t                          //指定构建后的镜像信息,
   /opt/dockerfile/nginx/      //则代表Dockerfile存放位置,如果是当前目录,则用 .(点)表示

根据镜像创建一个容器

docker create -p 3000:80 --name exampleApp3000 yoyomooc/exampleapp
//docker create命令用于创建一个新的镜像。
//-p参数告诉 Docker 如何在容器中映射端口 80到主机操作系统。我指定容器内的端口80映射到主机操作系统中的端口3000。这与Docker中的EXPOSE命令相对应。
//--name 参数为容器指定了一个名字,这样一来,一旦容器的已经创建了。本例中的名称是 exampleApp3000,表示这个容器将响应于请求发送至主机操作系统中的端口3000。
//最后一个参数告诉Docker要使用哪个镜像作为新容器的模板。这个命令指定了yoyomooc/exampleapp镜像,这是docker build中使用的名称。

启动一个容器

  docker start 容器名称/id

删除容器

//首先需要停止所有的容器(只停止单个时把后面的变量改为image id即可)
 docker stop $(docker ps -a -q)
//删除所有的容器(只删除单个时把后面的变量改为image id即可)
  docker rm $(docker ps -a -q)

删除镜像

 //查看host中的镜像
  docker images
//删除指定id的镜像
  docker rmi <image id>
//想要删除untagged images,也就是那些id为的image的话可以用
  docker rmi $(docker images | grep "^" | awk "{print $3}")
//删除全部的images
  docker rmi $(docker images -q)

给镜像打tag :

  docker tag vis 仓库名:版本

推到镜像仓库:

  docker push 仓库名:版本

3、Dockerfile语法

FROM

格式为FROM <image>或FROM <image>:<tag>。
第一条指令必须为FROM指令。并且,如果在同一个Dockerfile中创建多个镜像时,可以使用多个FROM指令(每个镜像一次)。

MAINTAINER

格式为MAINTAINER <name>,指定维护者信息。

RUN

格式为RUN <command>或RUN ["executable", "param1", "param2"]。
前者将在shell终端中运行命令,即/bin/sh -c;后者则使用exec执行。
指定使用其它终端可以通过第二种方式实现,例如RUN ["/bin/bash", "-c", "echo hello"]。
每条RUN指令将在当前镜像基础上执行指定命令,并提交为新的镜像。当命令较长时可以使用\来换行
shell模式:类似于 /bin/bash -c command  例如:RUN echo hello
exec模式:类似于RUN['/bin/bash','-c','command'] 例如: RUN ['echo','hello']

EXPOSE

格式为EXPOSE [...]
告诉docker容器暴露的端口,供互联系统使用。在启动容器时需要通过-P,docker主机会自动分配 一个端口转发到指定的端口,使用-p,则可以具体指定哪个本地端口映射过来。
例子:EXPOSE 22 80 

ENV

指定一个环境变量,会被后续RUN指令使用,并在容器运行时保持
例:ENV TZ "Asia/Shanghai" /ENV TERM xterm

ADD

格式为格式为ADD <src> <dest>。
该命令将复制指定的到容器中的。其中可以是dockerfile所在目录的一个相对路径(文件或目录),也可以是一个URL,还可以是一个tar文件(自动解压为目录)
例:
ADD aliyun-mirror.repo /etc/yum.repos.d/CentOS-Base.repo
ADD aliyun-epel.repo /etc/yum.repos.d/epel.repo

COPY

格式为COPY <src> <dest>。
复制本地主机的<src>(为Dockerfile所在目录的相对路径)到容器中的<dest>。
当使用本地目录为源目录时,推荐使用COPY。

ENTRYPOINT

两种格式:
ENTRYPOINT ["executable", "param1", "param2"]
ENTRYPOINT command param1 param2(shell中执行)。
配置容器启动后执行的命令,并且不可被docker run提供的参数覆盖。

VOLUME

格式为VOLUME ["/data"]
创建一个挂载点,类似于容器启动时使用的-v选项,只不过这里不能指定挂载到宿主机的位置。默认为/var/lib/docker/vfs目录下。一般用来存放数据库和需要保持的数据。

USER

格式为 USER daemon
指定运行容器时的用户名或UID,后续的RUN也会使用指定用户。当服务不需要管理员权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户。要临时获取管理员权限时可以使用gosu。
groupadd -r postgres && useradd -r -g postgres postgres。要临时获取管理员权限可以使用gosu,而不推荐sudo。

WORKDIR

格式为WORKDIR /path/to/workdir
为后续的RUN、CMD、ENTRYPOINT指令配置工作目录。可以使用多个WORKDIR指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。
示例:
WORKDIR /a
WORKDIR b
WORKDIR c
最终路径为/a/b/c

ONBUILD

格式为ONBUILD [INSTRUCTION]。
配置当所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令。
例如,Dockerfile使用如下的内容创建了镜像image-A。

[...]
ONBUILD ADD . /app/src
ONBUILD RUN /usr/local/bin/python-build --dir /app/src
[...]

如果基于A创建新的镜像时,新的Dockerfile中使用FROM image-A指定基础镜像时,会自动执行ONBUILD指令内容,等价于在后面添加了两条指令。

FROM image-A
 
#Automatically run the following
ADD . /app/src
RUN /usr/local/bin/python-build --dir /app/src

使用ONBUILD指令的镜像,推荐在标签中注明,例如ruby:1.9-onbuild。

与Docker常用命令相似的内容:

[转帖]Docker常用命令

https://www.zhoubotong.site/post/68.html Docker常用命令 运行某个 image 文件: sudo docker container run 镜像名称xxx 或者 docker run --name mynginx -d nginx:latest #使用d

[转帖]Docker常用命令

https://www.zhoubotong.site/post/68.html Docker常用命令 运行某个 image 文件: sudo docker container run 镜像名称xxx 或者 docker run --name mynginx -d nginx:latest #使用d

Docker常用命令

1、前置条件 ubuntu 20.04 一键安装dockcer curl -sSL https://get.daocloud.io/docker | sh 2、学习Docker 查看容器: docker ps 查看所有容器: docker ps -a 进入容器的内部 docker exec -it

Kubernetes(K8S) 常用命令

Docker 常用命令 Docker 常用命令 # 查看API版本 [root@k8smaster ~]# kubectl api-versions # 重启 K8S [root@k8smaster ~]# systemctl restart kubelet # 查看 kubelet 状态 [roo

使用docker搭建ELK分布式日志同步方案

ELK作为业界最常用日志同步方案,我们今天尝试一下使用docker快速搭建一套ELK方案。ELK使用国内加速源拉取的镜像比较旧,有条件的朋友可以拉取官网的源。elasticsearch作为日志储存库(数据库),kibana的作用通过elasticsearch的API接口调取其中数据作可视化分析,lo

Docker Compose V2 安装常用数据库MySQL+Mongo

主要增加对容器创建 MySQL、Mongo 时对 数据文件,日志,配置,网络,时区,端口映射,密码 的配置,更贴合生产环境的实际使用

Docker 基础 - 2

容器操作系统类型 Busybox 集成了一百多个最常用 Linux 命令和工具的软件工具箱. 包含cat echo grep find mount telnet 等 Busybox 是Linux 系统的瑞士军刀 Debian/Ubuntu CentOS/Fedora CoreOS 官网链接 Linu

MongoDB从入门到实战之MongoDB工作常用操作命令

前言: 上一章节我们快速的在Docker容器中安装了MongoDB,并且通过Navicat MongoDB可视化管理工具快速的连接、创建数据库、集合以及添加了文档数据源。这一章节我们主要是了解一下在日常工作中MongoDB一些常用的操作命令。 MongoDB从入门到实战的相关教程 MongoDB从入

DBeaver Ultimate 22.1.0 连接数据库(MySQL+Mongo+Clickhouse)

前言 继续书接上文 Docker Compose V2 安装常用数据库MySQL+Mongo,部署安装好之后我本来是找了一个web端的在线连接数据库的工具,但是使用过程中并不丝滑,最终还是选择了使用 DBeaver ,然后发现 mongo 还需要许可,又折腾整理了半下午,终于大功告成。 DBeave

DHorse系列文章之镜像制作

DHorse系列文章之镜像制作 制作镜像常用的工具 使用Docker制作镜像 1.使用docker commit制作 该命令使用比较简单,可以自行网上搜索教程。 2.使用Dockerfile制作 这种方式,需要编写如下的Dokerfile文件: FROM openjdk:openjdk:13-jdk