docker使用

启动服务

启动守护进程

sudo service docker start 

查看是否启动成功

docker -v

能看见版本号说明启动成功
19.03.12

关闭服务

关闭守护进程

sudo service docker stop

增删查

没有改是因为docker容器一旦出现问题了,根本没有修复的必要,直接把容器停止并删除,再启动,这样来得快。

【查】查看本地已有的镜像
docker images
【查】查看所有的容器

查看所有的容器docker ps -a 可以用来查看所有的容器,包括运行中的和已经停止的。

docker ps -a 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-viImvrse-1595592240339)(https://note.youdao.com/yws/api/personal/file/1F28E4F4879C43839C15C2A11F2F856B?method=download&shareKey=227db54323bb6714226aa5ea3a400f0c)]

第一个字段就是已经启动的容器ID,第二个字段就是这个容器是根据哪个镜像生成的。但是上面这个命令只是临时启动一下容器,上面图中的status 是exited(0),表示容器是退出状态。如果想容器在后台运行,所以我们需要启动守护式容器才可以,只要在启动命令中添加一个 -d参数,即docker run -d centos就可以了。

【查】查看镜像/容器的具体信息
docker inspect 镜像ID(镜像名)
docker inspect 容器ID(容器名)

这个命令是返回一个镜像或者容器详细信息的json串。其中包括ID,ip,版本,容器的主程序等非常多的信息,根据这些信息我们可以进行二次开发。在这个命令的基础之上增加一个-f参数我们可以指定获取自己需要的信息,比如获取redis容器的IP地址,内存信息,CPU使用情况。

docker inspect -f '{{.NetworkSettings.IPAddress}}' [ID /Name]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DuYQKPYf-1595592240341)(https://note.youdao.com/yws/api/personal/file/896209BDFE9C4C9D99AC6DC0D8F713C8?method=download&shareKey=26d8e2fcc6c0b99f8e50681abe3e3b3d)]

【查】

进入容器

docker run -it centos

即启动一个交互式容器

-it 完成容器终端和当前终端进行关联,即当前终端的显示就会切换到容器终端的显示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G5LkJNF6-1595592240343)(https://note.youdao.com/yws/api/personal/file/104BD6AC66B34A9CB682FAA9420B8B15?method=download&shareKey=6223976911234a048663ac6046602e50)]

查看容器目录结构,发现和物理机器的目录结构完全一致,这就是为什么有的人称docker容器也称之为虚拟机的原因啦。Exit可以退出容器终端。

【增】方法一

运行一个镜像,即启动一个容器 docker run 镜像名 ,比如我们运行docker run centos
键入这个命令的时候完成了三样操作

1、 检查本地是否有hello-world这个镜像,有->就跳过第二步 没有->依次执行

2、 就自动去docker hub下载这个镜像

3、 就把镜像加载到容器并且运行

docker run 镜像名
【增】方法二

拉取指定的镜像文件 docker pull 镜像名:TAG

docker pull 镜像名:TAG

上面那种通过直接运行的方式拉取的是docker hub中最新的镜像,但是有时候我想拉取指定的镜像文件就需要使用docker pull命令来拉取。因为从官方拉取镜像文件,通常是比较慢的,所以我们可以通过加速器技术来从国内的镜像仓库拉取。

【删】

删除容器,docker rm 容器ID,删除多个容器就可以多个容器ID之间用空格隔开即可。

docker rm xxxxx xxxxx xxx

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J6Tm8sYP-1595592240347)(https://note.youdao.com/yws/api/personal/file/A9BCCEF5476942E39BA663519EE25384?method=download&shareKey=f1bdef16bb6ee15933fe0e8560f70e18)]

docker如何查看自己的源

mv /etc/apt/sources.list /etc/apt/sources.list.bak
    echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >> /etc/apt/sources.list
    echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
    echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list
    echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list

怎么用Docker完成持续集成、自动交付、自动部署?

但是上面说了这么多,没发现Docker有那三样功能啊,是的,Docker是没有这个功能,但是你在完成上述三样自动化的步骤都是依赖Docker的。Docker是这些流程实现的基础,就如同软件开发,软件代码才是根本,开发工具是辅助。所有搭建一个完整的自动化流程还需要github+jenkins+ registry三样帮助。

持续集成和自动部署的原理如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rpf48Up0-1595592240349)(https://note.youdao.com/yws/api/personal/file/6375D75BE1814DE78B9870702AC73D0A?method=download&shareKey=bbd12022ff9ad5c7356e8343b28acba6)]

  • RD推送代码到git 仓库或者svn等代码服务器上面,git服务器就会通过hook通知jenkins。
  • jenkine 克隆git代码到本地,并通过dockerFile文件进行编译 。
  • 打包生成一个新版本的镜像并推送到仓库 ,删除当前容器 ,通过新版本镜像重新运行。

而在整个过程中 RD只需要敲入三个命令

Git add * ;
Git commit –m “”;
Git

push即可完成持续集成、自动交付、自动部署。后面通过案例实际演示这个过程的神奇!

Docker还可以很方便的自动扩容哦,一般的自动扩容的两种方式,一种就是docker容量扩大,另一种就是docker节点数扩充。第一种就修改配置文件即可,第二种通过简单的拷贝,运行就完成了节点的扩容。

总结

Docker虽好,可不要贪杯哦!虽然Docker具有超轻量化,但是不建议一台机器上面部署太多的应用,同时部署的时候一定要差异化部署,什么意思呢,就是将大量计算的,和内存需要大的,IO操作频繁的对系统资源需求不一致的部署到同一台宿主机上。

来源

容器和虚拟机的区别

chroot

有很多子树,每一个子文件夹(子树)都可以当做root,每一个root都可以用一个系统。保留一个子文件系统作为一个容器。好像模拟出几个os,但其实只有一个操作系统。

因此性能会比虚拟机(VMware)要好。

Gvnicorn也是一种容器技术,比docker还要轻量级。

容器的管理

容器的编排机制:K8s(企业级部署)

如果没有编排机制,管理起来会很麻烦

基本原理

一个镜像可以做多个容器

镜像相当于类,容器可以当做对象(实例),仓库(dockerhub)尽量用国内仓库,国外很慢

基于linux系统。

docker一定是跑linux上,不会在win和mac上部署的。但是可以先虚拟机虚拟出一个linux环境然后再装docker。

配置仓库

cd /etc
passwd 改变登录用户的密码
sudo passwd 改变root的密码
su 转到root
sudo是用超级用户的权限
cd /etc/docker/daemon.json
vi daemon.json
{
  "registry-mirrors": ["https://l9evev2c.mirror.aliyuncs.com"],
  "bip": "192.168.5.1/24"
}
重启docker服务
docker pull ubuntu:lates(镜像:版本)
docker run ubuntu(镜像)  /bin/ls(执行的东西)
docker container ls -a(全部都显示)
docker container ls(只显示活的容器)
docker container rm 容器名(ID)
docker run -it --name baiye ubuntu(容器) /bin/bash(命令)
docker exec -it baiye /bin/bash
docker container stop baiye

容器之间不会互相影响

var 程序运行起来产生一些中间文件在这个里面

-it 交互(inter)+输入输出(有提示符,terminal即终端)

要看

dockerfile定制镜像

debian是基础镜像,多加一条命令就多一层。

数据管理

数据卷

挂载主机目录

端口映射

-p 5000:80

容器编排技术

学习方法

先明白原理
在去看命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值