DOCKER常规应用

目录

  • 从零开始装DOCKER
    • 环境初始化
    • docker 安装
    • docker初始配置
  • DOCKER 常规应用
    • 配置使用Portainer
    • 使用tomcat容器
    • 使用mysql数据库容器
    • 使用oracle数据库容器

从零开始装DOCKER

本文是个人在docker使用过程中的总结记录,包含常用容器及命令的使用、常见问题的解决等。

环境初始化

这里暂时只针对centos 7.x 64位操作系统做说明

1、yum源配置

一般操作系统默认的yum源为centos官方源,因为有一堵墙,速度会比较慢,所以我们最好将yum源修改成国内比较靠谱的,速度会有明显提升

#备份原有的源
cd /etc/yum.repo.d/
mv CentOS-Base.repo CentOS-Base.repo.back
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache

#该步骤是升级操作系统的核心模块,如果系统已经运行了重要应用,不建议执行
yum update -y

2、存储优化/硬盘挂载

docker镜像数据默认存储在在/var/lib/docker下,该目录默认为/root分配额的存储空间,一般比较有限,而docker镜像对空间的占用会比较高,所以安装docker前,需要扩容/lib/docker目录 生产环境下强烈建议执行该步骤

方案一:存储优化

#使用root权限
mkdir -p /home/docker
cd /var/lib/
#在lib下建立docker软链接,执行/home/docker下,这样docker默认的数据
ln -s /home/docker docker

方案二:硬盘挂载

等下次遇到再补充

3、关闭SELINUX

至于为什么要关闭,请大家自己查~

#临时关闭
setenforce 0

#永久关闭
vi /etc/selinux/config
#修改SELINUX=enforcing改为SELINUX=disabled

docker 安装

以下如没有特殊说明,均为root操作

这里我们安装社区版,因为企业版要钱。。。我又比较穷 社区版够用了

#删除之前的docker安装痕迹
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine
                  
#Install required packages. yum-utils provides the yum-config-manager utility, and device-mapper-persistent-data and lvm2 are required by the devicemapper storage driver.  安装依赖~
yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

#Use the following command to set up the stable repository. You always need the stable repository, even if you want to install builds from the edge or test repositories as well. 配置docker源~
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

#生产环境建议执行,禁用测试库
yum-config-manager --disable docker-ce-edge

#开始安装
yum install docker-ce

docker初始配置

1、启动docker服务

systemctl start docker

2、配置国内镜像源

同样因为有墙,直接用docker官方的hub会比较慢,我们需要修改为靠谱的镜像源加速

#以下文件,如果没有就创建一个
vi /etc/docker/daemon.json
#写入以下内容
{
  "registry-mirrors":["https://rdcmmqji.mirror.aliyuncs.com"]
}

#刷新daemon仓库
#重启docker服务
systemctl daemon-reload
systemctl restart docker

下面就可以测试一下了

[root@localhost ~]# docker search tomcat
NAME                                  DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
tomcat                                Apache Tomcat is an open source implementati…   1872                [OK]
tomee                                 Apache TomEE is an all-Apache Java EE certif…   51                  [OK]
dordoka/tomcat                        Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 base…   49                                      [OK]
davidcaste/alpine-tomcat              Apache Tomcat 7/8 using Oracle Java 7/8 with…   24                                      [OK]
bitnami/tomcat                        Bitnami Tomcat Docker Image                     16                                      [OK]
consol/tomcat-7.0                     Tomcat 7.0.57, 8080, "admin/admin"              16                                      [OK]
cloudesire/tomcat                     Tomcat server, 6/7/8                            15                                      [OK]
tutum/tomcat                          Base docker image to run a Tomcat applicatio…   9
jeanblanchard/tomcat                  Minimal Docker image with Apache Tomcat         8
meirwa/spring-boot-tomcat-mysql-app   a sample spring-boot app using tomcat and My…   8                                       [OK]
aallam/tomcat-mysql                   Debian, Oracle JDK, Tomcat & MySQL              6                                       [OK]
rightctrl/tomcat                      CentOS , Oracle Java, tomcat application ssl…   3                                       [OK]
amd64/tomcat                          Apache Tomcat is an open source implementati…   2
maluuba/tomcat7-java8                 Tomcat7 with java8.                             2
fabric8/tomcat-8                      Fabric8 Tomcat 8 Image                          2                                       [OK]
camptocamp/tomcat-logback             Docker image for tomcat with logback integra…   1                                       [OK]
99taxis/tomcat7                       Tomcat7                                         1                                       [OK]
primetoninc/tomcat                    Apache tomcat 8.5, 8.0, 7.0                     1                                       [OK]
oobsri/tomcat8                        Testing CI Jobs with different names.           0
jelastic/tomcat                                                                       0
swisstopo/service-print-tomcat        backend tomcat for service-print "the true, …   0
trollin/tomcat                                                                        0
s390x/tomcat                          Apache Tomcat is an open source implementati…   0
picoded/tomcat7                       tomcat7 with jre8 and MANAGER_USER / MANAGER…   0                                       [OK]
awscory/tomcat                        tomcat                                          0

安装完成。后面的使用部分会持续补充。

官方文档:https://docs.docker.com/install/linux/docker-ce/centos/#upgrade-docker-ce

以上↑
author hetao

20180606

DOCKER 常规应用

配置使用Portainer

1、获取镜像

概念:

2、创建容器

3、参数说明

4、进入容器

5、查看日志

使用tomcat容器

1、获取镜像

#查询镜像查看自己想要的镜像是否在仓库中有合适的版本
docker search tomcat 
#拉取符合自己要求的镜像
docker pull tomcat

2、创建容器

docker run -it -p 8900:8080 --network=net_nmg 
-e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime:ro 
-v /home/nmg/app/war:/war 
-v /home/nmg/app/xml:/usr/local/tomcat/conf/Catalina/localhost 
-v /home/nmg/app/logs:/usr/local/tomcat/logs 
-v /home/nmg/app/webapps:/usr/local/tomcat/webapps 
-v /home/nmg/app/appdata:/appdata 
--name nmg_app tomcat

3、参数说明

以上创建并运行容器的方法只是常规操作,实际可根据自己需要修改或增加参数

    端口映射
        -p 宿主机:容器
    目录映射:tomcat映射的目录主要有war包的位置,热部署文件,日志文件,war包解压目录,系统文件位置
        -v 宿主机目录:容器目录
    --network 加入网组
    给容器取别名
        --name 别名
    

4、进入容器

    docker exec -it <containerId> /bin/bash

5、查看日志

    docker logs --tail 200 -f <containerId>

使用mysql数据库容器

1、获取镜像

#查询镜像查看自己想要的镜像是否在仓库中有合适的版本
docker search mysql 
#拉取符合自己要求的镜像
docker pull mysql:5.7

2、创建容器

实际创建容器可根据自己需要修改相应的参数

docker run -it -p 3306:3306 
--network=net_nmg 
-e MYSQL_ROOT_PASSWORD=Passw0rdmysql
-v /home/nmg/app/mysql:/var/lib/mysql 
--lower_case_table_names=1
--name mysql_server mysql:5.7 

3、参数说明

    端口映射
        -p 宿主机:容器
    目录映射:mysql映射的目录主要有mysql文件
        -v 宿主机目录:容器目录
    --network 加入网组
    设置数据库root密码
        -e MYSQL_ROOT_PASSWORD=Passw0rdmysql
    设置表名称不区分大小写
        --lower_case_table_names=1
    给容器取别名
    --name mysql_server

4、进入容器

    docker exec -it <containerId> /bin/bash
    #进入容器内部可以执行mysql的常规管理操作。若要倒入到处数据操作请将数据放在映射目录

5、查看日志

    docker logs --tail 200 -f <containerId>

6、常见问题

1.一般情况下容器的时间和宿主机的系统时间会有差别可加入如下参数

    -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime:ro

2.建议在数据库启动之后还未建数据库的时候修改允许group查询

--查看sql_mode
select @@global.sql_mode;
--查询出来的值为:ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
--去掉ONLY_FULL_GROUP_BY,重新设置值
set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
--上面是改变了全局sql_mode,对于新建的数据库有效。对于已存在的数据库,则需要在对应的数据下执行:
set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

使用oracle数据库容器

1、获取镜像

​ docker官方并未提供oracle的原生镜像,但有同仁已经做了oracle镜像,这里我们作为“伸手党”,来直接使用了。

​ https://hub.docker.com/r/sath89/oracle-ee-11g

2、创建容器

3、参数说明

4、进入容器

5、查看日志

你可能感兴趣的:(技术,docker)