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/
还不快抢沙发