一.初识docker

代码接触到的环境:

开发环境==>,测试环境==>,生产环境

概念

  1. Docker是一个开源的应用容器引擎
  2. 基于go语言实现,dotCloud公司出品
  3. Docker将开发者打包他们的应用以及依赖到一个轻量级,可移植的容器中,然后发布到任何流行的Linux机器上
  4. 容器时完全使用沙箱机制,相互隔离
  5. 容器性能开销小
  6. Docker分为企业版和社区版

Docker架构

image.png

配置Docker镜像加速器

默认情况下,将来从dockerhub上下载docker镜像,太慢.一般会使用docker镜像

  • USTC:中科打镜像加速器(https://docker.mirrors.ustc.edu.cn)
  • 阿里云
  • 网易云
  • 腾讯云

    二.Docker命令(cent os 7)

    一.通过命令操作daemon

    启动docker

    1. systemctl start docker

    停止docker

    1. systemctl stop docker

    重启docker

    1. systemctl restart docker

    查看docker服务状态

    1. systemctl status docker

    开机启动docker服务

    1. systemctl enable docker

    查看docker 的命令

    1. docker --help

    查看docker cpu

    1. docker stats 容器id

    二.通过命令操作container

    查看容器

    ```xml

    查看开启的容器

    docker ps

    查看所有容器

    docker ps -a

    查看所有容器的id

    docker ps -aq

-a 列出所有运行过的容器

-n=? 显示最近创建的容器

-q 只显示容器编号

  1. <a name="CAFH6"></a>
  2. #### 创建容器 启动容器
  3. ```xml
  4. ## 启动并进入容器
  5. docker run -it --name=c1 镜像名:版本号 /bin/bash
  6. ## -i 容器一直运行
  7. ## -t 给容器分配一个终端
  8. ## --name= 给容器起个名字 可以是=或空格
  9. ## /bin/bash 进入容器启动命令行模式
  10. docker run -id --name=c2 镜像名:版本号
  11. ## -d 后台运行
  12. ## -P 指定容器的端口 -P 8080:8080
  13. -p ip:主机端口:容器端口
  14. -P 主机端口:容器端口 (常用)
  15. -P 容器端口
  16. 容器端口
  17. ## -p 随机指定端口

进入容器

  1. docker exec -it 容器id或容器名 /bin/bash #进入容器后开启新的命令行
  2. #或
  3. docker attach 容器id或容器名 #进入容器正在执行的终端,不会启动新的进程

退出容器

  1. exit ##容器推出并停止
  2. ctrl + P + Q ##容器推出不停止

启动容器和停止容器

  1. docker start 容器id #启动容器
  2. docker restart 容器id #重启容器
  3. exit #推出当前正在运行的容器
  4. docker stop 容器id #停止当前正在运行的容器
  5. docker kill 容器id #杀死进程

删除容器(不可以删除一个正在运行的容器)

  1. ## 删除一个容器 , 不能删除正在运行的容器
  2. docker rm 容器id或名
  3. ## 删除所有的容器
  4. docker rm `docker ps -aq`
  5. #或
  6. docker rm -f$(docker ps -aq)
  7. ## -f 强制删除

从容器内拷贝文件到主机上

  1. docker cp 容器id :容器内路径 目的主机路径

查看容器信息

  1. docker inspect 容器id

后台启动容器

  1. docker run -d 镜像id
  2. #问题docker ps ,发现centos停止
  3. #常见的坑: docker 容器使用后台运行,就必须要有一个前台进程,docker如果发现前台没有程序,就会自动停止

查看日志

  1. docker logs -ft --tail 10 容器id
  2. --deatils 显示提供给日志的额外详细信息
  3. -f 跟踪日志输出
  4. --tail string 从日志末尾开始显示的行数(默认为“all”)
  5. -t 时间戳
  6. --untils string 示时间戳之前的日志(例如2013-01-02T13:23:37)或相对的日志(例如42分钟显示42米)

查看容器中进程信息

  1. docker top 容器id

容器run 流程

image.png

三.通过命令操作image(Docker镜像)

查看镜像

  1. ## 查看所有镜像id
  2. docker images -a
  3. ## 只显示镜像的id
  4. docker images -q
  5. ## 查看所有镜像所有内容
  6. docker images
  7. 镜像的仓库名 版本号 镜像id 创建时间 镜像大小

image.png

搜索镜像(从网络中查找需要的镜像)

  1. #可选项,通过搜索来过滤
  2. --filter=STARS=3000 #搜索出来的镜像就是STARSdayu3000的
  3. docker search redis
  4. 名 描述 starts(github星是一致的) 官方支持

image.png

拉去镜像(从Docker仓库下载镜像到本地)

  1. docker pull redis:版本号 ##可以去docker官网去查看版本号hub.docker.com
  2. docker pull redis ##没有版本号时是最新的

删除镜像

  1. ## 删除单个镜像
  2. docker rmi 对应的镜像id
  3. docker rmi 名:版本号
  4. ## 删除多个镜像
  5. docker rmi -f 镜像id 镜像id 镜像id
  6. ## 删除所有的镜像
  7. docker rmi `docker images -q`

四.其他命令

  1. docker version #显示docker版本信息
  2. docker info #显示docker系统信息
  3. docker 命令 --help #帮助命令
  4. cp -r webapps.dist/* webapps #拷贝