Docker环境安装

安装详细说明参考官方文档:https://docs.docker.com/get-docker/

环境信息查看

##查看docker容器版本
docker version
##查看docker容器信息
docker info
##查看docker容器帮助
docker --help

镜像操作

  1. 查看镜像
##列出本地images
docker images
##含中间映像层
docker images -a

查询出的信息从左到右依次为仓库名称、标签、镜像Id、创建日期

  1. 拉取镜像
    官方镜像仓库地址:https://hub.docker.com/,可以搜索自己需要的镜像和版本,包含详细的说明文档,提供下载命令。
    如果搭建了私有仓库,可以在镜像前加上仓库地址下载私有仓库的镜像(私有仓库拉取前要先登录
##下载Redis官方最新镜像,相当于:docker pull redis:latest
docker pull redis
##下载私人仓库镜像
docker pull bitnami/redis
  1. 镜像删除
##单个镜像删除,相当于:docker rmi redis:latest
docker rmi redis
##强制删除(针对基于镜像有运行的容器进程)
docker rmi -f redis
##多个镜像删除,不同镜像间以空格间隔
docker rmi -f redis tomcat nginx
  1. 镜像详细信息查看
##使用 inspect 命令查看镜像详细信息,包括制作者、适应架构、各层的数字摘要等
docker inspect redis

容器操作

  1. 容器启动
##新建并启动容器,参数:-i  以交互模式运行容器;-t  为容器重新分配一个伪输入终端;--name  为容器指定一个名称
docker run -i -t --name mycentos
##后台启动容器,参数:-d  已守护方式启动容器
docker run -d mycentos
##启动一个或多个已经被停止的容器
docker start redis
##停止一个容器
docker stop redis
##重启容器
docker restart redis

这里再详细说下启动过程中传递环境变量,以springboot项目为例
修改application.yaml配置文件的内容方式有两种,亲测可用

  • 将配置文件需要动态传参的地方修改为:${DB_USER:cloud0305},外部传入为:-e DB_USER=“dfdq”
  • 不修改原文件,直接借助springboot加载机制,使用配置的全路径:-e
    “SPRING_DATASOURCE_DRIVER-CLASS-NAME=org.postgresql.Driver”
docker run \
-p 5200:5200 \
-e REDIS_HOST="10.24.19.124" \
-e REDIS_PORT="6379" \
-e DB_URL="jdbc:postgresql://10.24.19.124:15432/dfdq" \
-e DB_USER="dfdq" \
-e DB_PWD="aaaaaa" \
-e "SPRING_DATASOURCE_DRIVER-CLASS-NAME=org.postgresql.Driver" \
-e "SPRING_DATASOURCE_HIKARI_CONNECTION-TEST-QUERY=SELECT 1" \
-e "SPRING_JPA_PROPERTIES_HIBERNATE_DIALECT=org.hibernate.dialect.CAFPostgreSQL95Dialect" \
-e "CAF-SECURITY_AUTHN_PROVIDERS_USERNAME-PASSWORD-JDBC_DATASOURCE_DRIVER-CLASS-NAME=org.postgresql.Driver" \
--privileged=true \
-d --name 2003_rc2 demo/test:2.0 .
  1. 容器日志
    容器启动后,可以查看内部日志。
    不仅可以知晓当前的运行状态,也可以在运行出错的情况下通过日志排查
##查看redis容器日志,默认参数
docker logs rabbitmq
##查看redis容器日志,参数:-f  跟踪日志输出;-t   显示时间戳;--tail  仅列出最新N条容器日志;
docker logs -f -t --tail=20 redis
##查看容器redis从2019年05月21日后的最新10条日志。
docker logs --since="2019-05-21" --tail=10 redis
  1. 容器的进入与退出
##使用run方式在创建时进入
docker run -it centos /bin/bash
##关闭容器并退出
exit
##仅退出容器,不关闭
快捷键:Ctrl + P + Q
##直接进入centos 容器启动命令的终端,不会启动新进程,多个attach连接共享容器屏幕,参数:--sig-proxy=false  确保CTRL-D或CTRL-C不会关闭容器
docker attach --sig-proxy=false centos
##在 centos 容器中打开新的交互模式终端,可以启动新进程,参数:-i  即使没有附加也保持STDIN 打开;-t  分配一个伪终端
docker exec -i -t  centos /bin/bash
##以交互模式在容器中执行命令,结果返回到当前终端屏幕
docker exec -i -t centos ls -l /tmp
##以分离模式在容器中执行命令,程序后台运行,结果不会反馈到当前终端
docker exec -d centos  touch cache.txt
  1. 查看容器
##查看正在运行的容器
docker ps
##查看正在运行的容器的ID
docker ps -q
##查看正在运行+历史运行过的容器
docker ps -a
##显示运行容器总文件大小
docker ps -s
  1. 容器的停止与删除
##停止一个运行中的容器
docker stop redis
##杀掉一个运行中的容器
docker kill redis
##删除一个已停止的容器
docker rm redis
##删除一个运行中的容器
docker rm -f redis
##删除多个容器
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm
## -l 移除容器间的网络连接,连接名为 db
docker rm -l db
## -v 删除容器,并删除容器挂载的数据卷
docker rm -v redis
  1. 容器与主机间的数据拷贝
##将rabbitmq容器中的文件copy至本地路径
docker cp rabbitmq:/[container_path] [local_path]
##将主机文件copy至rabbitmq容器
docker cp [local_path] rabbitmq:/[container_path]/
##将主机文件copy至rabbitmq容器,目录重命名为[container_path](注意与非重命名copy的区别)
docker cp [local_path] rabbitmq:/[container_path]

参考链接:https://www.cnblogs.com/DeepInThought

全流程总结

上面对镜像的常用操作进行了一次梳理,接下来讲一下如何构建自己的镜像,包含镜像制作、镜像验证、镜像导入导出、镜像上传

1、Dockerfile说明

以下是一个Dockerfile的实例说明
Dockerfile 一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令
’#’ 为 Dockerfile 中的注释

# This my first nginx Dockerfile
# Version 1.0# Base images 基础镜像
FROM centos#MAINTAINER 维护者信息
MAINTAINER tianfeiyu #ENV 设置环境变量
ENV PATH /usr/local/nginx/sbin:$PATH#ADD  文件放在当前目录下,拷过去会自动解压
ADD nginx-1.8.0.tar.gz /usr/local/
ADD epel-release-latest-7.noarch.rpm /usr/local/  #RUN 执行以下命令
RUN rpm -ivh /usr/local/epel-release-latest-7.noarch.rpm
RUN yum install -y wget lftp gcc gcc-c++ make openssl-devel pcre-devel pcre && yum clean all
RUN useradd -s /sbin/nologin -M www#WORKDIR 相当于cd
WORKDIR /usr/local/nginx-1.8.0 RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-pcre && make && make installRUN echo "daemon off;" >> /etc/nginx.conf#EXPOSE 映射端口
EXPOSE 80#CMD 运行以下命令
CMD ["nginx"]

2、基于已有的Dockerfile制作镜像

执行命令的docker build命令时候,dockerfile需要在命令执行的当前目录
如果制作的镜像需要上传仓库,则需要加上仓库的前缀
最后的“.”不能丢

docker build -f ./Dockerfile -t repository/demo:2.0 .

3、运行镜像验证

镜像的启动参见:容器操作>>容器启动
需要注意的是容器启动需要的参数均要换成实际能访问的地址,避免localhost

4、将制作的镜像导出到其他环境

此处不能使用docker import,会丢失镜像环境信息

##将镜像导出到tar
docker save -o demo.tar repository/demo:2.0.1
##将镜像导入
docker load -i demo.tar

4、镜像上传仓库

首先需要登录

##账号、密码、仓库地址
docker login -u nx-business-ci -p Test6530 repository-ip

检查镜像名是否和仓库名一致,如果不一致,使用以下命令修改

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

推送镜像

docker push ImageName

Docker常用命令-全流程相关推荐

  1. docker 常用命令全解

    文章目录 一.docker 基础常用命令 二.docker 镜像常用命令 三.docker 容器常用命令 四.docker 其他常用命令 一.docker 基础常用命令 启动docker system ...

  2. 【docker】docker常用命令总结

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1. Docker概述 2. 虚拟化技术和容器化技术 3. Docker的基本组成 4. Docker的安装 5. Dock ...

  3. docker 使用理解 全流程

    1.docker是什么 docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制 ...

  4. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  5. 客快物流大数据项目(九):Docker常用命令

    目录 Docker常用命令 一.帮助命令 二.镜像命令 1.搜索镜像

  6. 扫盲 docker 常用命令

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/xuan_lu/article/details/119700854 一.docker常用命令 do ...

  7. Docker常用命令汇总

    Docker常用命令汇总 帮助命令 docker version docker info docker --help 镜像命令 docker images 列出本地主机上的镜像,各个选项说明如下: R ...

  8. Docker实战第二天(Docker常用命令详解)

    Docker常用命令 docker version #查看版本 docker search centos #搜索可用的docker镜像 docker images #查看当前docker所有镜像 do ...

  9. Docker常用命令操作——1)、镜像操作;2)、容器操作

    Docker常用命令&操作 1).镜像操作 https://hub.docker.com/ 操作 命令 说明 检索 docker search 关键字 eg:docker search red ...

最新文章

  1. 云游戏打破硬件限制,传输体验或成发展掣肘!
  2. 请简单解释一下ARP协议和ARP攻击
  3. 贝叶斯分类器用于文本分类: Multinomial Naïve Bayes
  4. 单片机定时器_51单片机的定时器如何计算初值?
  5. BJFU-ACM 12月8日月赛官方题解
  6. be my friend
  7. LTE物理传输资源(2)-频带、信道带宽和频点号EARFCN
  8. 【重点】LeetCode 143. Reorder List
  9. HTML电气规范表格不显示,ElecBook天正电气规范在线查询.chm
  10. 运算服务器v9型号,V9服务器
  11. UWB简介及其定位方法
  12. 是男人就闯到99关 【安卓软件】
  13. 带宽下载速度单位换算
  14. 阿里p7程序员哀叹:35岁,被通知合同不再续签
  15. Android录音转为MP2的实现
  16. PNN模型理论和实践
  17. SAP MM MARD 表里的Storage Bin 字段
  18. 数据科学家应当了解的五个统计基本概念
  19. android 黑白棋源码,黑白棋源代码
  20. u盘安装盘的制作汇总

热门文章

  1. 高效设置的Linux代理效劳器 Squid引见
  2. 身残志不残-霍金精神
  3. 面向搜索引擎编程工具
  4. [网络工程师]-防火墙-防火墙体系
  5. 爬取大众点评数据的血泪史
  6. 基于FPGA的数字秒表设计(含程序)
  7. html5游戏视频UI框架,推荐几个精致的web UI框架
  8. DAPP实现Metamask自动添加网络和切换网络
  9. 【考试记录】Apsara Clouder大数据技能认证:MOOC网站日志分析
  10. matlab 白平衡,白平衡算法