Linux学习
常用命令短语
查看已安装的镜像
docker images
查看已运行的容器
docker ps
查看容器属性(DB001为容器名称)
docker inspect db001
查看容器日志
docker logs tomcat07
进入容器
docker exec -it 0033e6d00a98 /bin/bash
查看容器id
docker ps -a
主机和容器文件传递
将容器的文件复制到主机中
docker cp tomcat07:/usr/local/tomcat/webapps/Qingling/WEB-INF/classes/config.properties /usr/local/config.properties
反之
docker cp /usr/local/config.properties tomcat07:/usr/local/tomcat/webapps/Qingling/WEB-INF/classes/config.properties
"tomcat07"为容器名称
停止、启动重启容器
docker stop tomcat07
docker start tomcat07
docker restart tomcat07
删除容器
在删除容器前需要关闭容器
语法:docker container rm 容器号
docker rm ed95b728c5a2
删除所有停止的容器
docker rm $(docker ps -a -q)
删除docker镜像
语法:docker rmi? 镜像image id
docker rmi? de25a81a5a0b????
删除文件夹下所有文件
rm –rf xxx
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
安装JDK
yum install java-1.8.0-openjdk* -y
?
?
连接远程服务器
下载并安装软件Xshell 6
http://wm.makeding.com/iclk/?zoneid=22813
创建连接
软件安装
Mysql安装
安装命令
?docker pull mysql:5.5
启动命令
?docker run --name mysql55 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.5
注意,这里的容器名字叫:db001,mysql的root用户密码是:mytest,映射宿主机子的端口3306到容器的端口3306,仓库名mysql和标签(tag)唯一确定了要指定的镜像,其实如果这里只有一个mysql也有必要要tag。
查看所有已启动的容器
docker ps
使用mysql的工具navicat测试
大小写处理
查询数据库是否区分大小写
show VARIABLES like ‘lower%‘
Linux安装的mysql数据库会区分库名及字段名的大小写,这里需要处理为不区分大小写
在容器中的my.cnf文件中加上
lower_case_table_names=1
字符乱码问题
在navicat中查看字符集
SHOW VARIABLES LIKE ‘character_set_%‘;
如果默认为瑞典latin1,则需要再my.cnf中加入
character_set_server = utf8
正常效果
?
Tomcat、JDK安装
拉取tomcat7
docker pull tomcat:7-jre7
运行
docker run -di --name=tomcat07 -p 8080:8080 tomcat:7-jre7
0033e6d00a98cdd4ac51511a6ec9c602da1e3cc15a32c4af7cafda0bda189ef0
访问验证
?
Redis安装
下载拉取Redis镜像
docker pull redis
基于Docker运行Redis
语法:docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
指定端口和密码
docker run --name redis -d -p 6379:6379 redis --requirepass "root"
这里特别注意一点:密码必须用英文的双引号
验证
验证radis是否启动成功
在window找一个radis的客户端
在cmd中启动redis-cli.exe
访问docker的地址
redis-cli -h 172.18.0.3 -p 6379 -a root
?
输入设置值:
set pass 123
取值:
get pass
?
启动顺序及镜像IP
容器的IP会跟随启动顺序的变化而变化
关闭
docker stop tomcat07
docker stop redis
docker stop mysql55
启动
docker start mysql55
docker start redis
docker start tomcat07
对应IP
Mysql: 172.18.0.2
Redis:???? 172.18.0.3
Tomcat:172.18.0.4
项目文件上传
进入文件夹
通过Xshell终端连接Linux服务器,进入要上传文件目录,如文件上传到usr目录,则先进入usr目录
验证是否能够上传
查看服务器是否支持rz上传文件:
输入rz命令、回车,如果支持则会弹出上传文件弹框;否则会提示找不到
?
不支持rz上传文件 则需先安装rz:
输入yum -y install lrzsz回车
文件上传
输入rz上传文件到linux系统中
通过unzip的方式解压出来
如果你如法使用unzip命令解压.zip文件,可能是你没有安装unzip软件,下面是安装方法
命令: yum list | grep zip/unzip? ?#获取安装列表
安装命令:yum install zip? ? #提示输入时,请输入y;
安装命令:yum install unzip #提示输入时,请输入y;
将某个文件夹打包为zip:
zip -q -r ?PocTest.zip ?PocTest/
将文件拷贝到tomcat的webapps下
得到容器id
docker inspect -f ‘{{.ID}}‘ tomcat07
// docker cp 本地路径 容器长ID:容器路径
docker cp /usr/local/红辣椒(罗马音).txt 0033e6d00a98:/usr/local/tomcat/webapps/ROOT
?
Jar包运行
拉取java环境变量
docker pull java:8u111
执行命令启动创建jar容器
docker run -d -p 8000:8000 -v /usr/jar/mydata/tomcat/job-admin/xxl-job-admin.jar:/usr/xxl-job-admin.jar -v /usr/jar/mydata/tomcat/job-admin/logs:/data/applogs --name job-admin java:8u111 java -jar /usr/xxl-job-admin.jar
? ? ?-d 表示在后台启动
? ? ?-p 8001:8001表示将容器的端口 映射成宿主主机的端口,否则8001端口访问不到
? ? ?-v?/usr/springboot-1.jar:/usr/springboot-1.jar 表示将宿主主机的jar文件,映射到容器中(分号前为宿主主机的路径,分号后为容器中的路径)
? ? ?--name springboot 表示为该容器取一个全局唯一的名称,这里我取的名称为springboot
? ? java:8u111 表示镜像文件的名称和tag
? ??java -jar /usr/springboot-1.jar 表示运行jar包,注意:这里的jar包为容器中的位置,是通过前面的-v属性映射的
?
项目启动
运行即可
docker start tomcat07
可通过命令查看日志
docker logs tomcat07
问题总结
1.容器的IP是由启动的顺序而定的,所以在启动容器时需要按照顺序启动,避免设置好的IP乱掉。
2.linux版本的mysql安装好后默认为区分大小写,需要在my.cnf文件中加入
lower_case_table_names=1
3.redis安装时,如果有密码,那么密码必须用英文双引号包起来,不然会出现密码错设置不正确的情况。
?
4.容器时间不准确。
创建文件"timezone",在里面写入内容:
Etc/UTC+8
通过docker cp拷贝到容器中的/etc目录下,重启容器即可:
docker cp /home/progdata/timezone job-admin:/etc