Day-07:docker的使用

1.docker简介

百度介绍:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 LinuxWindows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

--------其实简单来说,docker就是一个项目管理工具,我们可以把项目放进docker容器中,docker可以帮我们将各个容器(项目)独立运行管理,这样就不用担心不同项目服务器上互相干扰的问题了,因为docker所创建的容器是包含项目运行环境的,所以不需要再依赖我们服务器的运行环境,也就不会互相冲突。

docker应用自身带有容器模板,所以我们在创建特定容器时,只需要根据模板去创建就可以了。docker模板如同java中的类,每一个创建的特定容器就是对象。所以我们只需要安装docker应用,就可以很方便地去建立运行容器。

2.docker的安装

由于我使用的服务器系统为centos,所以就以centos为例子安装了。

//安装依赖工具包

yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

现在docker的安装比较方便,直接使用工具包去安装就可以了。

//安装docker
yum install docker-ce docker-ce-cli containerd.io

//启动并检测是否正确安装

systemctl start docker

docker run hello-world  //应当能看到hello及相关配置信息

3.docker的使用

这里主要说明怎么使用docker容器。

------容器创建

docker run -i -t ubuntu:15.10 /bin/bash

格式:

docker run命令  -参数 镜像(容器运行环境) 容器创建后要执行的命令

参数:-t 在新容器内指定一个伪终端或终端    -i 允许你对容器内的标准输入 (STDIN) 进行交互


//正确的话,上面的容器创建完,你会进入到容器中并以root身份运行bash
//所以你可以使用ls查看一下容器环境,应当与你的最简ubuntu系统一致

------容器控制

//渔

docker  //直接查看各个docker命令

docker 命令 --help  //查看命令的详细使用

//鱼

docker run -it ubuntu /bin/bash  //直接按照制定系统启动一个容器

exit  //退出容器

docker ps -a  //查看所有容器,主要看CONTAINER ID,也就是容器的ID

docker ps  //查看当前活跃容器

docker start 容器ID  //启动已停止的容器,与之相对的有stop,restart
//如果加了参数d,即 -itd ,那么就是后台运行,不进入容器

docker exec -it 容器ID /bin/bash  //交互式进入容器

docker rm -f 容器ID  //删除容器




------容器备份

docker export 容器ID > file.tar  //导出容器信息(类似Linux导出镜像)

docker import file.tar 镜像名称:TAG  //注意这里导入的容器是容器镜像导入,不是一个新容器
docker import URL 镜像名称:TAG

docker images  //查看现有镜像

 


+JDK环境安装

首先去Oracle官网把 jdk-14.0.1_linux-x64_bin.tar.gz (版本自己选择)下载回来,然后上传,建议新建一个 usr/local/java (最好是 chmod 777 /usr/local/java )放置,方便管理安装包。当然你要直接在Linux上下载也可以。

cd /usr/local/java

tar -zxvf jdk-14.0.1_linux-x64_bin.tar.gz    //解压到当前文件夹

vim /etc/profile    //全局变量记录表


//在文件最后插入下面三行
export JAVA_HOME=/usr/local/java/jdk-14.0.1
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar


//保存退出

source /etc/profile    //更新变量

//如果需要生成jre,可以切换到jdk目录下

bin/jlink --module-path jmods --add-modules java.desktop --output jre

完成,你可以试试用 javajavac 测试一下是否正确。

 


+tomcat安装

像jdk一样,先下载上传,然后在tomcat目录下找到 bin/setclasspath.sh ,末尾添加变量配置

export JAVA_HOME=/usr/local/java/jdk-14.0.1
export JAVA_JRE=/usr/local/java/jdk-14.0.1/jre

正常来讲这里应该 ./startup.sh,再访问 IP:8080 就可以看到初始页面了。

其他问题:

记得云服务器安全组,配置规则,添加访问服务器公网的安全组。

最好的话是修改一下tomcat下的 conf/server.xml

//把localhost修改为公网IP

<Host name="你的公网IP"  appBase="webapps"
      unpackWARs="true" autoDeploy="true">


<Engine name="Catalina" defaultHost="你的公网IP">

//端口
<Connector port="自己设置端口号" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

如果有访问不了的情况,很可能不是访问被拒,而是响应过久,因为阿里云现在对http管理比较复杂,tomcat访问可能被置后了。

//添加rngd服务,也就是关于服务器熵值的,可以为tomcat加速
yum install rng-tools

systemctl start rngd

 


+CentOS7+docker的一个问题

docker创建镜像centos7时默认覆盖系统的shell,但是它自己的shell不支持systemctl,算个bug吧。所以如果需要在docker容器中使用systemctl命令(会需要的),就需要在创建时指定自己的shell

docker run -tid --privileged=true 镜像:版本 /usr/sbin/init

//也就是指定shell的位置,一般在/usr/sbin/init

--end--

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值