docker容器部署的应⽤启动⽇志在哪⾥看_真的!两⼩时⼊门
Docker,太腻害了!...
作者:Warm and new
来源:cnblogs/peng104/p/10296717.html
1、引⾔
1.1 Docker是什么
Docker 最初是 dotCloud 公司创始⼈ Solomon Hykes 在法国期间发起的⼀个公司内部项⽬,于 2013 年 3 ⽉以 Apache 2.0 授权协议开源,主要项⽬代码在 GitHub 上进⾏维护。
Docker 使⽤ Google 公司推出的 Go 语⾔ 进⾏开发实现。
docker是linux容器的⼀种封装,提供简单易⽤的容器使⽤接⼝。它是最流⾏的Linux容器解决⽅案。
docker的接⼝相当简单,⽤户可以⽅便的创建、销毁容器。
docker将应⽤程序与程序的依赖,打包在⼀个⽂件⾥⾯。运⾏这个⽂件就会⽣成⼀个虚拟容器。
程序运⾏在虚拟容器⾥,如同在真实物理机上运⾏⼀样,有了docker,就不⽤担⼼环境问题了。
1.2 应⽤场景
web应⽤的⾃动化打包和发布
⾃动化测试和持续集成、发布
在服务型环境中部署和调整数据库或其他应⽤
1.3 区别
1、物理机
2、虚拟机
3、docker容器
1.4 Docker的三⼤概念及优势
镜像 image
容器 container
仓库 repository
docker容器的优势
1、更⾼效的利⽤系统资源
由于容器不需要进⾏硬件虚拟以及运⾏完整操作系统等额外开销,Docker 对系统 资源的利⽤率更⾼。
⽆论是应⽤执⾏速度、内存损耗或者⽂件存储速度,都要⽐传 统虚拟机技术更⾼效。因此,相⽐虚拟机技术,⼀个相同配置的主机,往往可以运 ⾏更多数量的应⽤。
2、更快速的启动时间
传统的虚拟机技术启动应⽤服务往往需要数分钟,⽽ Docker 容器应⽤,由于直接 运⾏于宿主内核,
⽆需启动完整的操作系统,因此可以做到秒级、甚⾄毫秒级的启 动时间。⼤⼤的节约了开发、测试、部署的时间。
3、⼀致的运⾏环境
开发过程中⼀个常见的问题是环境⼀致性问题。由于开发环境、测试环境、⽣产环 境不⼀致,导致有些 bug 并未在开发过程中被发现。
⽽ Docker 的镜像提供了除内 核外完整的运⾏时环境,确保了应⽤运⾏环境⼀致性,从⽽不会再出现 “这段代码 在我机器上没问题啊”这类问题。
4、持续交付和部署
对开发和运维(DevOps)⼈员来说,最希望的就是⼀次创建或配置,可以在任意 地⽅正常运⾏。
使⽤ Docker 可以通过定制应⽤镜像来实现持续集成、持续交付、部署。开发⼈员 可以通过 Dockerfile 来进⾏镜像构建,并结合持续集成(Continuous Integration) 系 统进⾏集成测试,⽽运维⼈员则可以直接在⽣产环境中快速部署该镜像,甚⾄结合 持续部署(Continuous Delivery/Deployment) 系统进⾏⾃动部署。
⽽且使⽤ Dockerfile 使镜像构建透明化,不仅仅开发团队可以理解应⽤运⾏环 境,也⽅便运维团队理解应⽤运⾏所需条件,帮助更好的⽣产环境中部署该镜像。
5、更轻松的迁移
由于 Docker 确保了执⾏环境的⼀致性,使得应⽤的迁移更加容易。Docker 可以在 很多平台上运⾏,⽆论是物理机、虚拟机、公有云、私有云,甚⾄是笔记本,其运 ⾏结果是⼀致的。
因此⽤户可以很轻易的将在⼀个平台上运⾏的应⽤,迁移到另⼀ 个平台上,⽽不⽤担⼼运⾏环境的变化导致应⽤⽆法正常运⾏的情况。
2、Docker安装
系统环境:docker最低⽀持centos7且在64位平台上,内核版本在3.10以上
版本:社区版,企业版(包含了⼀些收费服务)
官⽅版安装教程(英⽂)
docs.docker/install/linux/docker-ce/centos/#upgrade-docker-after-using-the-convenience-script
博主版安装教程:
# 安装docker
yum install docker
# 启动docker
systemctl start/status docker
# 查看docker启动状态
docker version
配置加速器
简介:DaoCloud 加速器 是⼴受欢迎的 Docker ⼯具,解决了国内⽤户访问 Docker Hub 缓慢的问题。DaoCloud 加速器结合国内的CDN 服务与协议层优化,成倍的提升了下载速度。
DaoCloud官⽹:
www.daocloud.io/mirror#accelerator-doc
# ⼀条命令加速(记得重启docker)
curl -sSL get.daocloud.io/daotools/set_mirror.sh | sh -s daocloud.io
3、Docker基础命令
docker --help(中⽂注解)
Usage:
docker [OPTIONS] COMMAND []
docker daemon [ --help | ... ]
docker [ --help | -v | --version ]
A
self-sufficient runtime for containers.
Options:
-
-config=~/.docker Location of client config files #客户端配置⽂件的位置
-D, --debug=false Enable debug mode #启⽤Debug调试模式
-H, --host=[] Daemon socket(s) to connect to #守护进程的套接字(Socket)连接
-h, --help=false Print usage #打印使⽤
-l, --log-level=info Set the logging level #设置⽇志级别
--tls=false Use TLS; implied by--tlsverify #
--tlscacert=~/.docker/ca.pem Trust certs signed only by this CA #信任证书签名CA
--tlscert=~/.docker/cert.pem Path to TLS certificate file #TLS证书⽂件路径
--tlskey=~/.docker/key.pem Path to TLS key file #TLS密钥⽂件路径
docker重启容器命令--tlsverify=false Use TLS and verify the remote #使⽤TLS验证远程
-v, --version=false Print version information and quit #打印版本信息并退出
Commands:
attach Attach to a running container #当前shell下attach连接指定运⾏镜像
build Build an image from a Dockerfile #通过Dockerfile定制镜像
commit Create a new image from a container's changes #提交当前容器为新的镜像
cp Copy files/folders from a container to a HOSTDIR or to STDOUT #从容器中拷贝指定⽂件或者⽬录到宿主机中
create Create a new container #创建⼀个新的容器,同run 但不启动容器
diff Inspect changes on a container's filesystem #查看docker容器变化
events Get real time events from the server#从docker服务获取容器实时事件
exec Run a command in a running container#在已存在的容器上运⾏命令
export Export a container's filesystem as a tar archive #导出容器的内容流作为⼀个tar归档⽂件(对应import)
history Show the history of an image #展⽰⼀个镜像形成历史
images List images #列出系统当前镜像
import Import the contents from a tarball to create a filesystem image #从tar包中的内容创建⼀个新的⽂件系统映像(对应export)
info Display system-wide information #显⽰系统相关信息
inspect Return low-level information on a container or image #查看容器详细信息
kill Kill a running container #kill指定docker容器
load Load an image from a tar archive or STDIN #从⼀个tar包中加载⼀个镜像(对应save)
login Register or log in to a Docker registry#注册或者登陆⼀个docker源服务器
logout Log out from a Docker registry #从当前Docker registry退出
logs Fetch the logs of a container #输出当前容器⽇志信息
pause Pause all processes within a container#暂停容器
port List port mappings or a specific mapping for the CONTAINER #查看映射端⼝对应的容器内部源端⼝
ps List containers #列出容器列表
pull Pull an image or a repository from a registry #从docker镜像源服务器拉取指定镜像或者库镜像
push Push an image or a repository to a registry #推送指定镜像或者库镜像⾄docker源服务器
rename Rename a container #重命名容器
restart Restart a running container #重启运⾏的容器
rm Remove one or more containers #移除⼀个或者多个容器
rmi Remove one or more images #移除⼀个或多个镜像(⽆容器使⽤该镜像才可以删除,否则需要删除相关容器才可以继续或者-f强制删除) run Run a command in a new container #创建⼀个新的容器并运⾏⼀个命令
save Save an image(s) to a tar archive#保存⼀个镜像为⼀个tar包(对应load)
search Search the Docker Hub for images #在docker
hub中搜索镜像
start Start one or more stopped containers#启动容器
stats Display a live stream of container(s) resource usage statistics #统计容器使⽤资源
stop Stop a running container #停⽌容器
tag Tag an image into a repository #给源中镜像打标签
top Display the running processes of a container #查看容器中运⾏的进程信息
unpause Unpause all processes within a container #取消暂停容器
version Show the Docker version information#查看容器版本号
wait Block until a container stops, then print its exit code #截取容器停⽌时的退出状态值
Run 'docker COMMAND --help' for more information on a command. #运⾏docker命令在帮助可以获取更多信息
docker search hello-docker # 搜索hello-docker的镜像
docker search centos # 搜索centos镜像
docker pull hello-docker # 获取centos镜像
docker run hello-world #运⾏⼀个docker镜像,产⽣⼀个容器实例(也可以通过镜像id前三位运⾏)
docker image ls # 查看本地所有镜像
docker images # 查看docker镜像
docker image rmi hello-docker # 删除centos镜像
docker ps #列出正在运⾏的容器(如果创建容器中没有进程正在运⾏,容器就会⽴即停⽌)
docker ps -a # 列出所有运⾏过的容器记录
docker ps -a # 列出所有运⾏过的容器记录
docker save centos > /opt/ # 导出docker镜像⾄本地
docker load #导⼊本地镜像到docker镜像库
docker stop `docker ps -aq` # 停⽌所有正在运⾏的容器
docker rm `docker ps -aq` # ⼀次性删除所有容器记录
docker rmi `docker images -aq` # ⼀次性删除所有本地的镜像记录
3.1 启动容器的两种⽅式
容器是运⾏应⽤程序的,所以必须得先有⼀个操作系统为基础
1、基于镜像新建⼀个容器并启动
# 1. 后台运⾏⼀个docker
docker run -d centos /bin/sh -c "while true;do echo 正在运⾏; sleep 1;done"
# -d 后台运⾏容器
# /bin/sh 指定使⽤centos的bash解释器
# -c 运⾏⼀段shell命令
# "while true;do echo 正在运⾏; sleep 1;done" 在linux后台,每秒中打印⼀次正在运⾏
docker ps # 检查容器进程
docker logs -f 容器id/名称 # 不间断打印容器的⽇志信息
docker stop centos # 停⽌容器
# 2. 启动⼀个bash终端,允许⽤户进⾏交互
docker run --name mydocker -it centos /bin/bash
# --name 给容器定义⼀个名称
# -i 让容器的标准输⼊保持打开
# -t 让Docker分配⼀个伪终端,并绑定到容器的标准输⼊上
# /bin/bash 指定docker容器,⽤shell解释器交互
当利⽤docker run来创建容器时,Docker在后台运⾏的步骤如下:
1. 检查本地是否存在指定的镜像,不存在就从公有仓库下载
2. 利⽤镜像创建并启动⼀个容器
3. 分配⼀个⽂件系统,并在只读的镜像层外⾯挂在⼀层可读写层
4. 从宿主主机配置的⽹桥接⼝中桥接⼀个虚拟接⼝到容器中去
5. 从地址池配置⼀个ip地址给容器
6. 执⾏⽤户指定的应⽤程序
7. 执⾏完毕后容器被终⽌
2、将⼀个终⽌状态(stopped)的容器重新启动
[root@localhost ~]# docker ps -a # 先查询记录
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES ee92fcf6f32d centos "/bin/bash" 4 days ago Exited (137) 3 days ago kickass_raman
[root@localhost ~]# docker start ee9 # 再启动这个容器
ee9
[root@localhost ~]# docker exec -it ee9 /bin/bash # 进⼊容器交互式界⾯
[root@ee92fcf6f32d /]# # 注意看⽤户名,已经变成容器⽤户名
3.2 提交创建⾃定义镜像
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论