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小时内删除。