dock学习笔记-持续更新

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38500014/article/details/79174606


Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker核心解决的问题是利用LXC来实现类似VM的功能,从而利用更加节省的硬件资源提供给用户更多的计算资源
*镜像可以理解为一个ios的系统光盘文档
*容器是装好后可运行的系统
docker的典型场景
使应用的打包与部署自动化
创建轻量、私密的PAAS环境
使连续的集成/部署、测试自动化
部署、衡量网页app、数据库和后台服务

fapui镜像id 3a859bbb11fb  name=sunyard/fapui   Successfully built 04d6ddd700cb
fapui容器id 7f74af165784  name=fapui      command="nohup /home/Makefil  2f9d664b9ff34c62e702548515c43baaa5798a355fb2287947e9dbb49ce63fbe

创建容器
# sudo docker create--name ubuntContainer ubuntu:14.04 /bin/echo 'Hello world'
重启容器
#sudo docker restart 容器ID
暂停容器
#sudo docker pause 容器ID  //暂停
#sudo docker unpause 容器ID //解除暂停
停止容器
$sudo docker stop 容器ID或容器名称
#运行容器
docker start +容器id 
#docker stop $(docker ps -q -a)  //一次性停止所有容器,慎用
杀死容器
$sudo docker kill 容器ID或容器名称
删除容器
$sudo docker rm 容器ID或容器名称   //删除容器,正在运行的容器不能删除
#sudo docker rm $(docker ps -q -a)  //一次性删除所有容器,慎用

显示运行容器的进程信息
#sudo docker top 容器ID
docker ps -a 查看所有容器,包括没有运行的
docker ps 显示所有正在运行的容器
docker logs 查看日志

报错:数据库连接报com.db2.jcc.am.qo
解决:重启容器中的数据库后要重置数据库密码


sudo docker start 1d051604e0ea  //start docker
docker exec -it 1d051604e0ea bash   进入到某个容器
su db2inst1
db2start
db2 connet to pm


从容器中拷贝文件出来,先exit,再 docker cp 1d051604e0ea:/tmp/db2_conf/test  /home/developer
镜像查看
#sudo docker images  //在本机进行镜像查看
 
#sudo docker inspect 镜像ID   //查看单个镜像的具体信息,以JSON格式返回

docker images 查看镜像
docker load 导入镜像
docker save 导出镜像
docker rmi 删除镜像
docker build 新建镜像
docker run +镜像id 

docker commit 容器生成镜像


Docker并不是全能的,设计之初也不是KVM之类虚拟化手段的替代品,简单总结几点:


1--Docker是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用
2--LXC是基于cgroup等linux kernel功能的,因此container的guest系统只能是linux base的
3--隔离性相比KVM之类的虚拟化方案还是有些欠缺,所有container公用一部分的运行库
4--网络管理相对简单,主要是基于namespace隔离
5--cgroup的cpu和cpuset提供的cpu功能相比KVM的等虚拟化方案相比难以度量(所以dotcloud主要是按内存收费)
6--docker对disk的管理比较有限
7--container随着用户进程的停止而销毁,container中的log等用户数据不便收集





问题:容器内启动db2失败时报The database manager failed to allocate shared memory
数据库管理器分配共享内存失败
解决:root 用户下执行sysctl kernel.shmmax=18446744073692774399









猜你喜欢

转载自blog.csdn.net/weixin_38500014/article/details/79174606