Docker概述
Docker为何要出现
由于传统的方式,不能打包环境,而环境的配置也及其繁琐,及其耗费时间,而docker就可以非常有效的解决这个问题
docker的思想来源于集装箱,docker的核心思想!打包装箱,也就是说每个箱子都是隔开的,docker通过这种机制可以吧服务器利用到极致
docker为什么这么多人喜欢用
在类似docker这种技术出现之前,我们用的都是虚拟机,而虚拟机和docker都称为虚拟化技术,不同的则是:
- 虚拟机安装和启动相当于一个全新的操作系统,体积十分的大
- docker则是直接运行在宿主机的,而且每个容器是相互隔离的,每个容器都有属于自己的文件系统,而每个容器相同的东西是共用的,互不影响,也十分的小巧
docker是基于go语言开发的,是一个开源项目
docker官网:https://www.docker.com/
docker的官方文档:https://docs.docker.com/
docker的镜像仓库:https://hub.docker.com/
- 应用更快熟的交付和部署
- 更便利的升级的扩展,删减
- 更简单的系统运维
- 更高效的计算机资源利用
Docker安装
参考官方文档和百度以及Google
Docker的基本组成
-
镜像(images)
可以通过镜像来创建多个容器
-
容器(container)
利用容器化技术,独立运行应用,通过镜像来创建,目前可以理解为一个简易的linux
-
仓库(repository)
存放镜像的地方,分为私有和公有,国内结合阿里云的容器的镜像加速服务使用
Docker的常用命令
帮助命令
docker version # 查看docker的版本信息
docker info # 查看docker的系统信息,包含镜像和容器的数量
docker 命令 --help #帮助命令,帮助文档:https://docs.docker.com/engine/reference/commandline/build/
镜像命令
docker images # 查看本地主机上的所有镜像,也可以用docker image ls
# 解释
#REPOSITORY # 镜像的仓库源
#TAG # 镜像的标签
#IMAGE ID # 镜像的id
#CREATED # 镜像的创建时间
#SIZE # 镜像的大小
docker search # 搜索镜像
docker pull #下载镜像
docker rmi # 删除镜像
docker pull下载镜像
#下载镜像 docker pull 镜像名[:tag]
? docker pull gcc
Using default tag: latest
latest: Pulling from library/gcc #不写tag默认就是latest
b9a857cbf04d: Already exists # 分层下载 docker images的核心,联和文件系统
d557ee20540b: Already exists
3b9ca4f00c2e: Already exists
667fd949ed93: Already exists
4ad46e8a18e5: Already exists
6b12d912e8a1: Pull complete
469a7950a2b4: Pull complete
b0ef12232a36: Pull complete
c261ba6eb26c: Pull complete
Digest: sha256:f418921b872c4831dfc9bc33aaec2a8480d37e46190da766c3497cd8d5fedb75 # 防伪签名
Status: Downloaded newer image for gcc:latest
docker.io/library/gcc:latest # 真实地址
docker rmi删除镜像
docker rmi -f 镜像id #删除指定的镜像
docker rmi -f 镜像id 镜像id 镜像id 镜像id#删除指定的镜像
docker rmi -f $(docker images -aq) #删除全部的镜像
容器命令
docker run 镜像id # 新建容器并启动
docker ps # 列出所有运行的容器 docker container list
docker rm 容器id # 删除指定容器
docker start 容器id # 启动容器
docker restart 容器id # 重启容器
docker stop 容器id # 停止当前正在运行的容器
docker kill 容器id # 强制停止当前容器
注:我们有了镜像才可以创建容器,linux
> docker container
Usage: docker container COMMAND
Manage containers
Commands:
attach Attach local standard input, output, and error streams to a running container # 当前shell下 attach连接指定运行的镜像
commit Create a new image from a container's changes # 提交当前容器为新的镜像
cp Copy files/folders between a container and the local filesystem
create Create a new container
diff Inspect changes to files or directories on a container's filesystem
exec Run a command in a running container
export Export a container's filesystem as a tar archive
inspect Display detailed information on one or more containers
kill Kill one or more running containers
logs Fetch the logs of a container
ls List containers
pause Pause all processes within one or more containers
port List port mappings or a specific mapping for the container
prune Remove all stopped containers
rename Rename a container
restart Restart one or more containers
rm Remove one or more containers
run Run a command in a new container
start Start one or more stopped containers
stats Display a live stream of container(s) resource usage statistics
stop Stop one or more running containers
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more contai