一、docker简介

docker是一个开源的应用容器引擎;是一个轻量级容器技术; docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像; 运行中的这个镜像称为容器,容器启动是非常快速的。

二、docker的核心概念

docker主机(Host):安装了Docker程序的机器(docker直接安装在操作系统之上);

docker客户端(Client):连接docker主机进行操作;

docker仓库(Registry):用来保存各种打包好的软件镜像;

docker镜像(Images):软件打包好的镜像;放在docker仓库中;

docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用

三、使用docker步骤

1)、安装docker

2)、去docker仓库找到这个软件对应的镜像(docker hub);

3)、使用docker运行这个镜像,这个镜像就会生成一个docker容器;

4)、对容器的启动停止就是对软件的启动停止;

四、docker的安装与卸载

1)、docker的安装命令

1、检查内核版本,必须是3.10及以上

uname -r
复制代码
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start

# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
#   将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]复制代码

安装校验

root@iZbp12adskpuoxodbkqzjfZ:$ docker version
Client:Version:      17.03.0-ceAPI version:  1.26Go version:   go1.7.5Git commit:   3a232c8Built:        Tue Feb 28 07:52:04 2017OS/Arch:      linux/amd64Server:Version:      17.03.0-ceAPI version:  1.26 (minimum version 1.12)Go version:   go1.7.5Git commit:   3a232c8Built:        Tue Feb 28 07:52:04 2017OS/Arch:      linux/amd64Experimental: false复制代码

2)、docker的卸载命令

#1.查询安装过的包
yum list installed | grep docker
#2.删除安装的软件包
yum -y remove containerd.io.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64
#3.删除镜像/容器等rm -rf /var/lib/docker复制代码

五、docker常用命令&操作

  1. docker操作
  • 检索 | docker search 关键字 eg:docker search redis
  • 拉取 | docker pull 镜像名:tag
  • 列表 | docker images
  • 删除 | docker rmi image-id

说明:我们经常去docker hub上检索镜像的详细信息,如镜像的TAG。 :tag是可选的,tag表            示标签,多为软件的版本,默认是latest 查看所有本地镜像 删除指定的本地镜像

2.容器操作

  • 搜索镜像 [root@localhost ~]# docker search tomcat
  • 拉取镜像 [root@localhost ~]# docker pull tomcat
  • 根据镜像启动容器 docker run --name mytomcat【自命名】 -d tomcat:latest【镜像名:标签】
  • docker ps 查看运行中的容器
  • 查看所有的容器 docker ps -a
  • 停止运行中的容器 docker stop 容器的id【下图红色标注即为 docker ps命令查出的容器id】
  • 启动容器 docker start 容器id
  • 删除一个容器 docker rm 容器id
  • 启动一个做了端口映射的tomcat [root@localhost ~]# docker run -d -p 8888:8080 tomcat -d:后台运行 -p: 将主机的端口映射到容器的一个端口 主机端口:容器内部的端口【下图红色标注即为主机端口与容器内部端口映射说明】
  • 查看容器的日志docker logs container-name【容器名】/container-id【容器id】
  • 更多命令可以参考https://docs.docker.com/engine/reference/commandline/docker/ 也可以参考每一个镜像的文档内部有高级命令操作。

六、安装mysql操作实例

  1. 去docker hub 查找所需镜像和tag
  2. docker pull mysql【拉去镜像】

  3. 参考docker hub 给出的启动命令选择相应的启动方式

    比如:

    [root@localhost ~]# docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
    ad10e4bc5c6a0f61cbad43898de71d366117d120e39db651844c0e73863b9434
    [root@localhost ~]# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
    ad10e4bc5c6a        mysql               "docker-entrypoint.sh"   4 seconds ago       Up 2 seconds        0.0.0.0:3306->3306/tcp   mysql02
    复制代码
  4. Navicat连接mysql数据库报错问题【client does not support authentication】

解决办法:

  • docker ps -a 查找到容器id/容器名
  • docker exec -it 容器id/容器名 bash 进入mysql容器
  • mysql -uroot -p登陆mysql
  • use mysql【选择mysql database】; 进入mysql
  • 查询用户表信息:select host,user,authentication_string from user ;
  • 更改host为% user为root的用户的authentication_string

    host为%方便远程连接

    update user set authentication_string = 'root' where user = 'root' and host = '%';

    update user set authentication_string = 'root' where user = 'root' and host = 'localhost';

  • 如果还不行使用下面命令:                                                                                              alter user 'root'@'localhost' identified with mysql_native_password by '123456';

    alter user 'root'@'%' identified with mysql_native_password by '123456';

七、docker环境部署web项目

  1. 从docker hub 拉取Tomcat,并将打好的war包上传之宿主机器一个目录下:/home/dubbo-admin.war 启动tomcat,并用浏览器访问http://host_path:8080查看tomcat启动情况

    docker run -it --name dubbo-admin -d --rm -p 8080:8080 tomcat
    复制代码
  2. 进入docker容器中,并查看tomcat容器路径
    docker exec -i -t <docker_name>  bash
    复制代码
  3. 将宿主机器的war包复制到docker容器中:
    #从主机复制到容器
    sudo docker cp host_path(宿主机器路径) containerID:container_path(容器路径)
    
    #从容器复制到主机
    sudo docker cp containerID:container_path host_path
    #例如
    sudo docker cp /home/dubbo-admin-2.6.war 603140acbd3c:/usr/local/tomcat/webapps
    复制代码
  4. 上述执行有个弊端就是 容器重启后项目就会不再了,所以我们需要打包dubbo-admin镜像
    #镜像打包
    docker commit -m "提交信息" -a  "作者" ${CONTAINER_ID}  ${NEW_IMAGE_NAME}
    复制代码

docker的学习总结相关推荐

  1. Docker容器学习梳理--日常操作总结

    使用Docker已有一段时间了,今天正好有空梳理下自己平时操作Docker时的一些命令和注意细节: Docker 命令帮助 $ sudo docker Commands:attach Attach t ...

  2. Docker Compose学习之docker-compose.yml编写规则 及 实战案例

    [Docker那些事]系列文章 docker 安装 与 卸载 centos Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT ...

  3. docker基础学习中遇到的一些问题

    docker基础学习中遇到的有关tomcat的一些问题 最近在学docekr,对docker的基础操作有了一些认识,并试着做了一些实操,但是在实操过程中遇到了一些问题.有些已经解决,有些还未解决.现在 ...

  4. Docker入门学习教程

    Docker入门学习 文章目录 Docker入门学习 1.简介 2 基本概念 2.1 镜像(Image) 2.2 容器(Container) 2.3 仓库(Repository) 3.Windows ...

  5. 《自己动手写Docker》学习笔记2

    <自己动手写Docker>学习笔记2 1 前言 由于本人毕业设计与云原生领域相关,因此最近在学习Docker相关知识,<自己动手写Docker>涵盖了Docker底层的各类知识 ...

  6. 《深入浅出Docker》学习笔记

    <深入浅出Docker>学习笔记 第三章:docker 安装 linux服务器安装:-略 windows服务器安装:-略 确认安装结果 docker --version 第四章:纵观DOc ...

  7. Docker容器学习笔记一

    Docker容器学习笔记一 狂神说B站视频:https://www.bilibili.com/video/BV1og4y1q7M4?p=1 Docker容器学习笔记二:https://blog.csd ...

  8. 安装Docker及学习

    Docker安装及学习 1.环境介绍 OS:CentOS Linux release 8.5.2111 DNF是Dandified YUM的缩写,是一个面向基于RPM的Linux发行版的软件包管理器. ...

  9. Docker入门学习笔记

    文章目录 Docker入门学习 Docker为什么出现? 一.Docker的历史 二.Docker做什么 三.Docker 安装 Docker的基本组成 安装Docker 阿里云镜像加速 运行流程 底 ...

  10. Docker容器学习梳理--应用程序容器环境部署

    关于国内Docker镜像,可以参考:Docker容器学习梳理--基础知识(2) 的Docker镜像使用. 如果我们需要在Docker环境下部署tomcat.redis.mysql.nginx.php等 ...

最新文章

  1. API pytorch tensorflow
  2. 看看Spring的源码(一)——Bean加载过程
  3. Linux防火墙与iptables命令
  4. Android Studio 添加Assets目录
  5. retain和copy还有assign的区别
  6. 团购硝烟慢慢散去之时:从团购身上我们可以学到什么?
  7. mysql命令查看过程内容_mysql查看存储过程命令
  8. javascript date utc
  9. Https iOS需要做的事
  10. Hadoop2.2.0中HDFS的高可用性实现原理
  11. Java 重写(Override)与重载(Overload)区别
  12. 一款桌面整理软件——Fences
  13. C 语言中结构体中成员所占内存的大小
  14. 笔记本计算机涂硅脂,笔记本cpu怎么更换散热硅脂?笔记本电脑cpu涂硅脂教程
  15. 血淋淋的经验!2021做亚马逊测评是搭上末班车?还是成为新韭菜?
  16. 前端工具-Rollup
  17. Linux Mint + win10 双系统初体验
  18. java安全架构____X.509原理
  19. Mac 如何强制使用 5G 频段 Wi-Fi
  20. (批处理BAT)批量提取pdf大小

热门文章

  1. iptables加载顺序问题及优化方法
  2. 前端画面-下拉后滚动
  3. Dalvik VM和Java VM的区别:
  4. Hdu 2196 - Computer
  5. ExtJs xtype一览
  6. 系统集成项目管理工程师考试准备
  7. it专员职责_网络IT专员岗位职责
  8. hdu4901 枚举状态(找集合对S(xor) ==T(and))
  9. 【错误记录】Visual Studio 编译 C++ 代码报错 ( To disable deprecation, use _CRT_SECURE_NO_WARNINGS. )
  10. 【字节码插桩】AOP 技术 ( “字节码插桩“ 技术简介 | AspectJ 插桩工具 | ASM 插桩工具 )