Docker 基于 Go 语言开发,是一个基于 LXC 技术之上构建的 Container 容器引擎。容器是一种以固定格式打包软件的方式,以便让软件可以在共享的操作系统中运行,不同于虚拟机,容器并不需要捆绑这个操作系统,只需要软件正常工作所必须的库和设置即可,这使得容器更加高效、轻量级、可以自成系统并且不管部署在什么地方都可以保证运行结果一致。

概念

Docker 由镜像(Image)、容器(Container)、仓库(Repository) 三部分组成。

镜像

镜像可以简单的类比为电脑装系统用的系统盘,包括操作系统,以及必要的软件。

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

查看当前所有的镜像

$ docker images

REPOSITORY            TAG          IMAGE ID       CREATED        SIZE
laradock-php-fpm      latest       3f9514182cdd   20 hours ago   769MB
laradock-workspace    latest       13be4b819932   20 hours ago   1.31GB
laradock-nginx        latest       2092b501d031   21 hours ago   38MB
laradock-mysql        latest       576a63b0cd7e   43 hours ago   592MB
docker                20.10-dind   4f666f62a6ef   3 days ago     336MB
laradock-redis        latest       6f4c54cc20a9   6 days ago     111MB
laradock-phpmyadmin   latest       85f19923c3fd   9 days ago     488MB
  • REPOSITORY:仓库名称
  • TAG: 镜像标签,其中 lastest 表示最新版本
  • IMAGE ID:镜像唯一ID
  • CREATED:创建时间
  • SIZE:镜像大小

容器

容器可以简单理解为提供了系统硬件环境,

仓库

Docker 的仓库用于存放镜像,类似 Git。可以从中心仓库下载镜像,也可以从自建仓库下载。同时,我们可以把制作好的镜像 commit 到本地,然后 push 到远程仓库。仓库分为公开仓库和私有仓库,最大的公开仓库是官方仓库 Dock Hub。

安装配置

MacOS

Homebrew 安装

$ brew install --cask docker

下载安装

下载docker安装包进行安装即可

使用

在终端通过命令检查安装后的 Docker 版本在终端通过命令检查安装后的 Docker 版本

$ docker --version

Docker version 20.10.24, build 297e128

常用指令

镜像

查看当前所有的镜像

$ docker images
$ docker image ls
$ docker image ls -a

删除本地镜像

$ docker image rm [选项] <镜像1> [<镜像2> ...]

其中,<镜像> 可以是 镜像短 ID镜像长 ID镜像名 或者 镜像摘要

使用镜像短 ID 删除,一般取前3个字符以上,只要足够区分于别的镜像就可以了

如,删除 laradock-php-fpm 镜像

$ docker images

REPOSITORY            TAG          IMAGE ID       CREATED        SIZE
laradock-php-fpm      latest       3f9514182cdd   20 hours ago   769MB
laradock-workspace    latest       13be4b819932   20 hours ago   1.31GB
laradock-nginx        latest       2092b501d031   21 hours ago   38MB
laradock-mysql        latest       576a63b0cd7e   43 hours ago   592MB
docker                20.10-dind   4f666f62a6ef   3 days ago     336MB
laradock-redis        latest       6f4c54cc20a9   6 days ago     111MB
laradock-phpmyadmin   latest       85f19923c3fd   9 days ago     488MB

$ docker rm 3f9

使用镜像名删除:

$ docker image rm laradock-php-fpm

更精确的是使用 镜像摘要 删除镜像:

$ docker image ls --digests
$ docker image rm ${digests}

容器

查看所有容器

$ docker ps -a

启动容器

新建并启动:

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

启动已终止容器:

$ docker container start [OPTIONS] CONTAINER [CONTAINER...]

终止容器

$ docker container stop [OPTIONS] CONTAINER [CONTAINER...]

进入容器

attach
$ docker attach 243c
exec
$ docker exec -it 69d1 bash

其他

# 查看docker的版本
$ docker -v

# 查看镜像历史
$ docker history

# 查看docker的详细信息
$ docker info

# 构建自己的镜像xx/ownname是自己的托管代码路径
$ docker build -t xx/ownname <Dockerfile路径>

# 进入容器内部查看或操作
$ docker exec it containername /bin/bash

# 查看某容器的详细配置信息
$ docker inspect container-name

# 加载镜像
$ docker load < /home/save.tar

# 登录某镜像平台,默认是hub.docker.com,需要注册账户
$ docker login <daocloud.io>

# 查看容器日志
$ docker logs -f <容器名或ID>

# 暂停某一容器所有进程
$ docker pause <docker name or id>

# 从远程拉取镜像,不带tag视为latest
$ docker pull <镜像名:tag>

# 将镜像推送到远程仓库
$ docker push name:tag

# 删除所有容器
$ docker rm ${docker ps -a -q}

# 删除某容器
$ docker rm -f <容器名或ID>

# 强制删除某镜像
$ docker rmi -f <镜像名或ID>

# 运行一个容器,命名、设置端口映射、后台运行等
$ docker run -it -d -p --name

# 保存镜像
$ docker save busy-box>/home/save.tar

# 标记本地镜像
$ docker tag

# 回复某一容器的所有进程
$ docker unpause <docker name or id>

官方文档:https://docs.docker.com/engine/reference/commandline/docker/


本文由 一切随风 创作,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论