【Docker系列2】Docker常用命令

简介: 讲解Docker常用的命令。

J1B)A@{)2`T9)22F`4ZIW{P.jpg

讲解Docker常用的命令。


镜像


列出镜像列表

命令:docker images(docker image ls)

%G6$H6OKSYE`)XQOAK952(D.png

各个选项说明:

  • REPOSITORY:表示镜像的仓库源
  • TAG:镜像的标签
  • IMAGE ID:镜像ID
  • CREATED:镜像创建时间
  • SIZE:镜像大小


从仓库拉取镜像

命令:docker pull

一般默认是从Docker Hub上拉取镜像的,Docker Hub是Docker官方提供的镜像仓库服务(Docker Registry),有大量官方或第三方镜像供我们使用,比如我们可以在命令行中输入下面的命令直接拉取一个Centos镜像:

docker pull centos

image.gif2(U{8W6}PJNCDX~I%`2(8RR.png

docker pull命令的完整写法如下:

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

拉取一个镜像,需要指定Docker Registry的地址和端口号,默认是Docker Hub,还需要指定仓库名和标签,仓库名和标签唯一确定一个镜像,而标签是可能省略,如果省略,则默认使用latest作为标签名,另外,仓库名则由作者名和软件名组成。

那么,我们上面使用centos,那是因为省略作者名,则作者名library,表示Docker官方的镜像,所以上面的命令等同于:

docker pull library/centos:latest

因此,如果拉取非官方的第三方镜像,则需要指定完整仓库名,如下:

docker pull mysql/mysql-server:latest


运行镜像

使用docker run命令,可以通过镜像创建一个容器,如下:

docker run -it centos /bin/bash
docker run -it ubuntu:17.10 /bin/bash


删除镜像

镜像删除使用 docker rmi 命令,比如我们删除 hello-world 镜像:

docker image  rm -f hello-world

Y3M%[35F%9B$[H0%$5$U`)S.png

我删除镜像时,提示“Error response from daemon: conflict: unable to remove repository reference "hello-world" (must force)”,所以才加上“-f”


构建镜像

当我们从 docker 镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。

  1. 从已经创建的容器中更新镜像,并且提交这个镜像
  2. 使用 Dockerfile 指令来创建一个新的镜像

我们使用命令 docker build ,从零开始来创建一个新的镜像。我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。

“构建镜像”的使用姿势可以参考:https://www.runoob.com/docker/docker-image-usage.html


容器


查看所有容器

查看本地所有的容器:

docker container ls -a

}M7NC5~F[V0EVXP2_]MN]4F.pngimage.gif

查看所有容器也有简洁的写法,如下:

docker ps -a


启动容器

启动容器有两种方式,一种是我们前面已经介绍过的,使用docker run命令通过镜像创建一个全新的容器,如下:

docker run -it ubuntu:17.10 /bin/bash

参数说明:

  • -i: 交互式操作。
  • -t: 终端。
  • ubuntu: ubuntu 镜像。
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

另外一种启动容器的方式就是启动一个已经停止运行的容器:

docker start container_id


进入正在运行的容器

想要进入正在运行的容器,与容器主进程交互,有以下两种常用方法:

docker attach container_id
docker exec it 容器名或ID /bin/bash


停止&重启容器

要停止正在运行的容器可以使用docker container stop或docker stop命令,如下:

docker stop container_id

image.gifCR14FEQ7{KC@~DF~OU~OORL.png

停止的容器可以通过 docker restart 重启:

docker restart container_id


删除容器

我们也可以使用docker container rm命令,或简洁的写法docker rm命令来删除容器,不过不允许删除正在运行的容器,因此如果要删除的话,就必须先停止容器,删除容器:

docker rm container_id

删除所有退出的容器:

docker container prune

~7SUY[_P)R5K6O4IRRJXQ6N.png


容器连接

这个属于容器使用的稍微高级的部门,就简单提一下,后续知道有这个东西即可。

  • 网络端口映射:我们可以指定容器绑定的网络地址,比如绑定 127.0.0.1;
docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py
  • Docker容器互联:端口映射并不是唯一把 docker 连接到另一个容器的方法,docker有一个连接系统允许将多个容器连接在一起,共享连接信息。即先新建一个网络,然后运行容器时,将容器加入该网络中,那么在容器A中,可以ping容器B。
  • 配置DNS:不知道这个目前有什么用,就留个记录,主要有一下命令
# 输出DNS
docker run -it --rm  mi-php:5.3.10  cat etc/resolv.conf
# 配置DNS
docker run -it --rm -h host_ubuntu  --dns=114.114.114.114 --dns-search=test.com ubuntu


仓库


登录&退出

仓库(Repository)是集中存放镜像的地方:

  • https://hub.docker.com 免费注册一个 Docker 账号。
  • 登录需要输入用户名和密码,登录成功后,我们就可以从 docker hub 上拉取自己账号下的全部镜像。
#登录
docker login
#退出
docker logout


搜索&拉取镜像

你可以通过 docker search 命令来查找官方仓库中的镜像,以 ubuntu 为关键词进行搜索:

docker search ubuntu

image.gifOH6IF3CADG4E@%N`6DBY84R.png

使用 docker pull 将官方 ubuntu 镜像下载到本地,前面已经讲解,就不赘述。


推送镜像

用户登录后,可以通过 docker push 命令将自己的镜像推送到 Docker Hub,以下命令中的 username 请替换为你的 Docker 账号用户名。

$ docker tag ubuntu:18.04 username/ubuntu:18.04
$ docker image ls
REPOSITORY      TAG        IMAGE ID            CREATED           ...  
ubuntu          18.04      275d79972a86        6 days ago        ...  
username/ubuntu 18.04      275d79972a86        6 days ago        ...  
$ docker push username/ubuntu:18.04
$ docker search username/ubuntu
NAME    DESCRIPTION   STARS   OFFICIAL    AUTOMATED
username/ubuntu
相关文章
|
11天前
|
存储 Java Linux
【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!
docker有着比VM更少的抽象层 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源 因此在CPU、内存利用率上Docker将会在效率上有明显优势 docker利用的时宿主机的内核,而不需要加载操作系统OS内核 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核 进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需
99 1
|
3月前
|
安全 Unix Linux
Docker中授权普通用户使用docker命令以及解决无权限访问/var/run/docker.sock错误。
通过上述步骤,可以有效解决普通用户无法使用Docker命令的问题,同时处理 `/var/run/docker.sock`权限错误。这样的设置不仅方便用户使用Docker提供的各项服务,同时还能保护系统的安全性。在进行此类配置更改时,请确保理解每一步骤的作用及潜在的安全风险,尤其是在修改文件权限时。在实际的操作中,始终应该努力保持系统的最低必要权限,避免过度放宽权限,这是保障系统安全的一个重要方针。
918 75
|
4月前
|
Docker 容器
Docker run命令-p参数详解
本文介绍Docker端口映射的基础用法。通过`docker run -p <宿主机端口>:<容器端口>`实现端口映射,例如`-p 5000:80`将宿主机5000端口映射到容器80端口,外部访问宿主机5000端口时流量会转发至容器内部的80端口。示例命令中,`-d`用于后台运行,`--restart=always`确保容器自动重启,`--name`指定容器名称。部署完成后可通过`http://服务器IP地址:5000`验证服务是否正常运行。
|
3月前
|
Docker 容器
熟悉Docker容器管理命令:start、stop与restart详细使用指南
掌握这些Docker容器管理命令对于维护应用程序的正常运行至关重要。在实际操作中,应注意容器配置、关联资源以及日志等信息,确保各项操作都能够顺畅并且安全地执行。
408 0
|
5月前
|
网络协议 Ubuntu Docker
Docker Compose--命令说明
Docker Compose--命令说明
939 30
|
5月前
|
Ubuntu Linux 开发者
常用的Docker命令:docker_cmd_sheet
以上就是一些常用的Docker命令,希望能帮助你更好地驾驭这个强大的工具。记住,Docker就像是一个魔法咒语,只有真正理解和熟练使用,才能发挥出它的最大魔力。
138 22
|
5月前
|
Shell 应用服务中间件 nginx
docker 镜像的部分常用命令
docker镜像常用命令
184 16
|
5月前
|
关系型数据库 MySQL 数据库
Docker 安装常用软件相关命令
本文介绍了在CentOS 7.9系统上安装Docker的详细步骤,包括添加阿里云镜像源、安装Docker及相关组件、启动服务以及配置镜像加速。同时,还展示了如何通过Docker安装MySQL 5.7版本数据库,涵盖拉取镜像、创建数据目录、运行容器及配置挂载点等操作,并提供验证安装成功的命令和截图。适合需要部署Docker与MySQL环境的用户参考。
324 5
|
5月前
|
关系型数据库 MySQL Docker
|
6月前
|
NoSQL 应用服务中间件 Redis
Docker 常用命令整理
Docker 常用命令整理
164 1