docker常⽤命令合集
docker 常⽤命令合集
⽂章⽬录
docker 常⽤命令合集
⼀、docker概论
Docker 是⼀个开源的应⽤容器引擎,基于 Go 语⾔ 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应⽤以及依赖包到⼀个轻量级、可移植的容器中,然后发布到任何流⾏的 Linux
机器上,也可以实现虚拟化。
容器是完全使⽤沙箱机制,相互之间不会有任何接⼝(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),
我们⽤社区版就可以了⼆、Docker的应⽤场景
Web 应⽤的⾃动化打包和发布。
⾃动化测试和持续集成、发布。
在服务型环境中部署和调整数据库或其他的后台应⽤。
从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建⾃⼰的 PaaS 环境。
2.1 Docker 的优点
Docker 是⼀个⽤于开发,交付和运⾏应⽤程序的开放平台。Docker 使您能够将应⽤程序与基础架构分开,从⽽可以快速交付软件。借助Docker,您可以与管理应⽤程序相同的⽅式来管理基础架构。通过利⽤ Docker 的⽅法来快速交付,测试和部署代码,您可以⼤⼤减少编写代码和在⽣产环境中运⾏代码之间的延迟。
(1)、快速,⼀致地交付您的应⽤程序
Docker 允许开发⼈员使⽤您提供的应⽤程序或服务的本地容器在标准化环境中⼯作,从⽽简化了开发的⽣命周期。
容器⾮常适合持续集成和持续交付(CI / CD)⼯作流程,请考虑以下⽰例⽅案:
您的开发⼈员在本地编写代码,并使⽤ Docker 容器与同事共享他们的⼯作。
他们使⽤ Docker 将其应⽤程序推送到测试环境中,并执⾏⾃动或⼿动测试。
当开发⼈员发现错误时,他们可以在开发环境中对其进⾏修复,然后将其重新部署到测试环境中,以进⾏测试和验证。
测试完成后,将修补程序推送给⽣产环境,就像将更新的镜像推送到⽣产环境⼀样简单。
(2)、响应式部署和扩展
Docker 是基于容器的平台,允许⾼度可移植的⼯作负载。Docker 容器可以在开发⼈员的本机上,数据中⼼的物理或虚拟机上,云服务上或混合环境中运⾏。
Docker 的可移植性和轻量级的特性,还可以使您轻松地完成动态管理的⼯作负担,并根据业务需求指⽰,实时扩展或拆除应⽤程序和服务。
(3)、在同⼀硬件上运⾏更多⼯作负载
Docker 轻巧快速。它为基于虚拟机管理程序的虚拟机提供了可⾏、经济、⾼效的替代⽅案,因此您可以利⽤更多的计算能⼒来实现业务⽬标。Docker ⾮常适合于⾼密度环境以及中⼩型部署,⽽您可以⽤更少的资源做更多的事情。
三、 Docker 架构
Docker 包括三个基本概念:
镜像(Image):Docker 镜像(Image),就相当于是⼀个 root ⽂件系统。⽐如官⽅镜像 ubuntu:16.04 就包含了完整的⼀套Ubuntu16.04 最⼩系统的 root ⽂件系统。
容器(Container):镜像(Image)和容器(Container)的关系,就像是⾯向对象程序设计中的类和实例⼀样,镜像是静态的定义,容器是镜像运⾏时的实体。容器可以被创建、启动、停⽌、删除、暂停等。
仓库(Repository):仓库可看成⼀个代码控制中⼼,⽤来保存镜像。
Docker 使⽤客户端-服务器 (C/S) 架构模式,使⽤远程API来管理和创建Docker容器。
Docker 容器通过 Docker 镜像来创建。
容器与镜像的关系类似于⾯向对象编程中的对象与类。
Docker ⾯向对象
容器 对象
镜像 类
四、 docker安装
部署19版docker
4.1安装依赖包
yum -y install yum-utils device-mapper-persistent-data lvm2
//yum-utils 提供了yum-config-manager
//device mapper 存储驱动程序需要device-mapper-persistent-data和lvm2
/
/device mapper 是Linux2.6内核中⽀持逻辑卷管理的通⽤设备映射机制。
//它为实现⽤于存储资源管理的块设备驱动提供了⼀个⽽⾼度模块化的内核架构
4.2 设置阿⾥云镜像源
yum-config-manager --add-repo mirrors.aliyun/docker-ce/linux/po
4.3安装docker-ce
yum -y install docker-ce
systemctl start docker.service
systemctl enable docker.service
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
4.4 镜像加速
进⼊阿⾥云官⽹》》搜索镜像加速》》选择centos版的
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors":["1i3tpy0i.mirror.aliyuncs"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
4.5 ⽹络优化
vim /f
net.ipv4.ip_forward=1
sysctl -p
service network restart
systemctl restart docker
五、docker 镜像使⽤
查看docker版本
docker version
搜索Nginx镜像(公有仓库)
docker  search nginx
下载Nginx镜像
docker pull  nginx
下载Redis官⽅最新镜像,相当于:docker pull redis:latest docker pull redis
下载仓库所有Redis镜像
docker pull -a redis
下载私⼈仓库镜像
后⾯会详细介绍私有库的建⽴
docker pull bitnami/redis
AUFS (联合⽂件系统) 若⼲层下载
下载后存放在 /var/lib/docker
/var/lib/docker/image/overlay/repositories/json //下载⽂件信息查看镜像列表
docker images  //查看下载镜像信息
[root@localhost opt]# docker images
REPOSITORY          TAG                IMAGE ID            CREATED            SIZE nginx              latest              7e4d58f0e5f3        8 days ago          133MB
REPOSITORY:表⽰镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像⼤⼩
//含中间映像层
docker images -a
//只显⽰镜像ID
docker images -q
//含中间映像层
docker images -qa
//显⽰镜像摘要信息(DIGEST列)
docker images --digests
//显⽰镜像完整信息
docker images --no-trunc
获取镜像信息
docker inspect 7e4d58f0e5f3
添加新标签
docker tag nginx:latest  nginx:web
[root@localhost opt]# docker tag nginx:latest  nginx:web
[root@localhost opt]# docker images
REPOSITORY          TAG                IMAGE ID            CREATED            SIZE nginx              latest              7e4d58f0e5f3        8 days ago          133MB
nginx              web                7e4d58f0e5f3        8 days ago          133MB
//查看镜像Nginx信息
[root@localhost opt]# docker images | grep nginx
nginx              latest              7e4d58f0e5f3        8 days ago          133MB
nginx              web                7e4d58f0e5f3        8 days ago          133MB 删除镜像
docker rmi  nginx:web  (如果只有⼀个别名,那么这个就是删除docker。如果是多个标签,那么就是只是删除⼀个标签)删除docker
docker rmi  docker——id  注:删除docker如果有其他别名需要删除只剩⼀个,才能删除docker
在删除容器之前需要先停⽌容器
单个镜像删除,相当于:docker rmi redis:latest
docker rmi redis
强制删除(针对基于镜像有运⾏的容器进程)
docker rmi -f redis
多个镜像删除,不同镜像间以空格间隔
docker rmi -f redis tomcat nginx
批量删除本地全部镜像
docker rmi -f $(docker images -q)
导出Nginx镜像命名为Nginx存放在⽬录opt下
docker save -o ⽂件名镜像id或者镜像别名
[root@localhost ~] docker save -o /opt/nginx 7e4d58f0e5f3
[root@localhost opt] docker save -o nginx1 nginx:latest
[root@localhost ~]cd /opt
[root@localhost opt] ll
总⽤量 133636
drwx--x--x. 4 root root        28 9⽉  17 15:43 containerd
-rw-------. 1 root root 136841216 9⽉  19 19:04 nginx
drwxr-xr-x. 2 root root        6 10⽉ 31 2018 rh
导⼊镜像
docker load --input 导出⽂件名
docker load < 导出⽂件名
[root@localhost opt] docker load --input nginx
go语言开发环境搭建
Loaded image ID: sha256:7e4d58f0e5f3b60077e9a5d96b4be1b974b5a484f54f9393000a99f3b6816e3d
[root@localhost opt] docker load < nginx
Loaded image ID: sha256:7e4d58f0e5f3b60077e9a5d96b4be1b974b5a484f54f9393000a99f3b6816e3d
[root@localhost opt] docker load --input nginx1
Loaded image: nginx:latest
六、docker容器的使⽤

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。