Docker的镜像文件可以在镜像仓库中进行搜索。

部署软件目录导航:

  • 常用命令
  • 部署 Tomcat
  • 部署 MySQL
  • 部署 Oracle

常用命令

docker的常用命令如下:

  • docker -v , --version : 输出当前docker的版本信息。
  • docker images : 查看镜像,-a 表示查看所有 ,-q 只显示镜像ID。
  • docker ps : 查看所有运行中的容器列表,-a 表示查看所有(包括已退出的容器),-q 只显示ID,-s显示文件大小。
  • docker pull : 从镜像仓库下载镜像,默认的镜像仓库地址:(https://hub.docker.com),可以直接下载镜像仓库中有的镜像文件,默认下载latest版本,也使用:tag指定下载哪个版本。
  • docker rm: 删除容器,后面带指定容器的ID,即可删除对应的容器。
  • docker rmi: 删除奖项文件,后面可以是镜像文件的名称或则ID,都可删除镜像文件。
  • docker run: 启动镜像并创建一个新容器实例,-a 可以添加STDIN、STDOUT或STDERR,-d 表示容器在后台执行(比较常用),-e 可以设置环境变量,-m 可以设置内存大小, -p 可以将系统端口指向容器端口,使其可以在容器外进行访问,(例如 -p 80:8080 可以将系统的80端口与容器的8080端口绑定。则容器外可以对80端口访问到容器的8080端口,比较常用), -v 可以将宿主的文件挂载到容器上,如 -v /test:/soft  将会把宿主的 /test 目录挂载到容器的 /soft目录下,如果test目录不存在则会新建一个test目录。
  • docker stop: 停止容器的运行。
  • docker logs: 显示容器的日志信息,-f 跟踪容器实施日志信息,-t 显示日志的时间信息。
  • docker search: 在Docker Hub 中搜索镜像文件。

具体的执行命令,还可以去参考镜像仓库对应镜像的详细介绍。

部署 Tomcat

下载Tomcat镜像文件,如下命令会下载latest版本的tomcat。

[root@localhost ~]# docker pull tomcat

下载完成后可以使用 docker images 查看下载后的镜像文件信息。

[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/tomcat latest df50c9d355cf days ago MB

启动tomcat程序,如下命令会在后台执行tomcat。并将tomcat默认的8080端口指向系统的8080端口。

[root@localhost ~]# docker run -d -p 8080:8080 tomcat

如果想打开多个Tomcat则直接,如上一样的名并将8080端口改为8081则,两个tomcat互不干扰,可同时存在。

docker run -d -p : tomcat

使用docker ps 查看正在运行的程序

[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9d64f362c40a tomcat "catalina.sh run" seconds ago Up seconds 0.0.0.0:->/tcp gracious_bohr
39d01b39e8d3 tomcat "catalina.sh run" minutes ago Up minutes 0.0.0.0:->/tcp wizardly_davinci

其中有两个Tomcat程序。如下访问结果:

         

部署 MySQL

下载最新版Mysql。

[root@localhost ~]# docker pull mysql

查看镜像是否下载成功。

[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/tomcat latest df50c9d355cf days ago MB
docker.io/mysql latest 8d99edb9fd40 days ago MB

启动镜像文件,执行如下命令,会在后台启动mysql,暴露3306端口,并命名为 my-mysql 且设置root密码为123456。

[root@localhost ~]#  docker run -p 3306:3306 --name my-mysql -e MYSQL_ROOT_PASSWORD= -d mysql

执行如下命令可以进入mysql 的 client。第一条 docker exec -it my-mysql bash。 可以进入到mysql的bash shell界面,然后执行 mysql -uroot -p是输入密码即可进入到mysql client。

[root@localhost ~]# docker exec -it my-mysql bash
root@f3f79ca4eae1:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is
Server version: 8.0. MySQL Community Server - GPL Copyright (c) , , Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

可以通过日志看到安装的 mysql 版本是 8.0.11。这个版本使用navicat连接时,会报如下错误:

执行select host, user, authentication_string, plugin from user;命令可以查询

  • host : 允许用户登录的IP,%表示可远程登录。
  • user : 当前数据库的用户名。
  • authentication_string: 用户的密码。
  • plugin : 密码的加密方式。

导致如上问题就是因为 'root'@'%' 的密码加密方式 使用的是 caching_sha2_password。我们需要修改它的加密方式。

mysql> select host, user, authentication_string, plugin from user;
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| host | user | authentication_string | plugin |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| % | root | $A$$bx9?Rgb:Y0&7q7:;Ef8isqjh0JQzsp6bJXk4eL/ibgbXx8zwdntsl0qxGA8 | caching_sha2_password |
| localhost | mysql.infoschema | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password |
| localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | mysql_native_password |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
rows in set (0.00 sec)

执行如下命令进行修改加密方式。

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '';
Query OK, rows affected (0.09 sec) mysql> select host, user, authentication_string, plugin from user;
+-----------+------------------+-------------------------------------------+-----------------------+
| host | user | authentication_string | plugin |
+-----------+------------------+-------------------------------------------+-----------------------+
| % | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | mysql_native_password |
| localhost | mysql.infoschema | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password |
| localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | mysql_native_password |
+-----------+------------------+-------------------------------------------+-----------------------+
rows in set (0.00 sec)

执行完毕后查看加密方式已修改,现使用navicat连接测试如下。

部署 Oracle

第一步还是下载Oracle数据库镜像仓库搜索的oracle 11g 可以找到 wnameless/oracle-xe-11g 镜像文件。

[root@localhost ~]# docker pull wnameless/oracle-xe-11g

查看下载后的镜像文件有2.13GB,比较大。

[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/tomcat latest df50c9d355cf days ago MB
docker.io/mysql latest 8d99edb9fd40 days ago MB
docker.io/wnameless/oracle-xe-11g latest 698cc7361de4 weeks ago 2.13 GB

启动命令如下:

[root@localhost ~]# docker run --name oracle -d -p : -e ORACLE_ALLOW_REMOTE=true wnameless/oracle-xe-11g

默认用户信息如下:

hostname: localhost
port:
sid: xe
username: system
password: oracle

SYS&SYSTEM的密码
oracle

测试效果如下:

Docker(三):部署软件的更多相关文章

  1. 基于Ubuntu下以Docker方式gitlab软件的部署

    基于Ubuntu下以Docker方式gitlab软件的部署 目录 基于Ubuntu下以Docker方式gitlab软件的部署 1.安装Docker Compose 1.1 下载curl 1.2 安装c ...

  2. 从头认识一下docker-附带asp.net core程序的docker化部署

    从头认识一下docker-附带asp.net core程序的docker化部署 简介 在计算机技术日新月异的今天, Docker 在国内发展的如火如荼,特别是在一线互联网公司, Docker 的使用是 ...

  3. 私活利器,docker快速部署node.js应用

    http://cnodejs.org/topic/53f494d9bbdaa79d519c9a4a 最近研究了几天docker的快速部署,感觉很有新意,非常轻量级和方便,打算在公司推广一下,解放运维, ...

  4. 基于Docker一键部署大规模Hadoop集群及设计思路

    一.背景: 随着互联网的发展.互联网用户的增加,互联网中的数据也急剧膨胀.每天产生的数据量数以万计,本地文件系统和单机CPU已无法满足存储和计算要求.Hadoop分布式文件系统(HDFS)是海量数据存 ...

  5. 使用Docker镜像部署ELK日志系统

    使用Docker部署elasticsearch.logstash.kibana 指定版本:6.7.1 (建议使用同一的版本.屏蔽三个软件间的不兼容性) 下载镜像: docker pull elasti ...

  6. 离线服务器下docker的部署与应用

    一分钟内形成docker的模糊概念 网上很多文章避免将docker与虚拟机混为一谈,但对于初学者来说,完全可以将docker当做一种虚拟机技术,只需要牢牢记住一点最重要的区别:docker依赖于物理机 ...

  7. Linux 上安装Docker 并部署netcor2.1

    述 容器,顾名思义是用来存放并容纳东西的器皿: 而容器技术伴着Docker的兴起也渐渐的映入大家的眼帘,它是一个抽象的概念,同时也是默默存在世上多年的技术,不仅能使应用程序间完全的隔离,而且还能在共享 ...

  8. Docker如何部署Python项目

    Docker 部署Python项目 作者:白宁超 2019年5月24日09:09:00 导读: 软件开发最大的麻烦事之一就是环境配置,操作系统设置,各种库和组件的安装.只有它们都正确,软件才能运行.如 ...

  9. Docker 方式部署 Solo 博客系统总结

      此篇为Docker部署方式,另有Tomcat部署方式,请参考文章<Tomcat 方式部署 Solo 博客系统总结>   最近搭建了一个博客系统,作为自己的主页,方便记录一些平时所见所闻 ...

随机推荐

  1. OAuth2.0 入门与进阶

     一.基础知识 1.OAuth产生背景 很多网站.APP 弱化甚至没有搭建自己的账号体系,而是直接使用社会化登录的方式,这样不仅免去了用户注册账号的麻烦.还可以获取用户的好友关系来增强自身的社交功能. ...

  2. Android 马甲包制作流程

    一.马甲包的制作流程 1.配置马甲包的applicationId以及应用名称 在app的build.gradle文件中添加马甲包的配置 android { signingConfigs { confi ...

  3. Java NIO(二) Channel

    Java NIO的通道类似流,但又有些不同: 既可以从通道中读取数据,又可以写数据到通道.但流的读写通常是单向的. 通道可以异步地读写. 通道中的数据总是要先读到一个Buffer,或者总是要从一个Bu ...

  4. Android 自定义View实现SegmentControlView(自定义多样式tablayout)

    偷懒一下,不做过多阐述 参考资源: Android 自定义View实现SegmentControlView : https://blog.csdn.net/a512337862/article/det ...

  5. c#中abstract、override、new、virtual、sealed使用和示例

    原文地址:http://blog.csdn.net/richerg85/article/details/7407544 abstract      修饰类名为抽象类,修饰方法为抽象方法.如果一个类为抽 ...

  6. visual studio 调试 不进断点 断点失效 提示当前不会命中该断点等问题解决

    1.首先看一下  当前调试模式是否为debug 2. 点击[调试]>[选项和设置] 将[要求源文件与原始文件完全匹配]勾选掉 3.点击调试的最后一个选项 点击[web] 将调试器内部勾选上需要测 ...

  7. day008-File文件

    1. File 文件和目录路径名的抽象表示形式. 一个File类对象就代表了一个文件或文件夹. 1.1 File类的作用 用来操作硬盘上的文件或文件夹 绝对路径:一般是以盘符开始的,比如:C:/Jav ...

  8. May 21st 2017 Week 21st Sunday

    The smallest deed is better than the greatest intention. 最微小的行动胜过最伟大的打算. Several years ago, just aft ...

  9. 如何使用Putty登录安装在VirtualBox里的ubuntu

    我是在Windows操作系统里用VirtualBox安装了ubuntu操作系统. 在VirtualBox里操作ubuntu的终端不是很方便,比如我想在Windows里复制一些命令到ubuntu的终端执 ...

  10. 从产品展示页面谈谈Hybris系列之二: DTO, Converter和Populator

    文章作者:张健(Zhang Jonathan) 上一篇文章 从产品展示页面谈谈Hybris的特有概念和设计结构 我们讲解了Hybris一些特有的概念以及大体架构,并且介绍了Facade层里是如何定义D ...