Docker
- 安装docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
- 配置docker守护进程,daemon的主要功能包括镜像管理、镜像构建、REST API、身份验证、安全、核心网络以及编排。
命令:vim /etc/docker/daemon.json
{
"registry-mirrors" : [
"https://mirror.ccs.tencentyun.com",
"http://registry.docker-cn.com",
"http://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"
],
"insecure-registries" : [
"registry.docker-cn.com",
"docker.mirrors.ustc.edu.cn"
],
"debug" : true,
"experimental" : true
}
- 重新加载 systemctl daemon-reload
- 启动或关闭 systemctl restart docker 或者 service docker restart (关闭即为stop)
- 查看详情 docker version 或者 docker info
- 注意:
有一个docker.socket单元文件 docker.socket这是用于套接字激活。意味着:如果你试图连接到docker socket,而docker服务没有运行,系统将自动启动docker。
解决方案一
你可以删除 /lib/systemd/system/docker.socket
从docker中 docker.service 文件 删除 fd://,即remove -H fd://
解决方案二
如果不想被访问时自动启动服务
输入命令:sudo systemctl stop docker.socket
Mysql
1 DB_HOME=/data/mysql
2 docker run -d
--restart unless-stopped
--name mysql -p 3306:3306
-v $DB_HOME/data:/var/lib/mysql
-v $DB_HOME/logs:/var/log/mysql
-v $DB_HOME/conf:/etc/mysql/conf.d
-e MYSQL_ROOT_PASSWORD=[my_password] mysql:[tag]
--lower_case_table_names=1
命令解读:
这是两行代码。
DB_HOME:shell语法。用来定义一个临时变量。用于替换 $DB_HOME
docker run 利用镜像创建一个容器
--name mysql:容器名字是mysql
-p 3306:3306:分配的端口是3306
-v $DB_HOME/data:/var/lib/mysql:挂载一个数据存放路径
-v $DB_HOME/logs:/var/log/mysql:挂载一个日志存放路径
-v $DB_HOME/conf:/etc/mysql/conf.d:挂载一个配置文件存放路径
MYSQL_ROOT_PASSWORD=[my_password]:后面用密码替换[my_password]
mysql:[tag]:用版本号替换[tag]
lower_case_table_names=0:表名存储为给定的大小和比较是区分大小写的
lower_case_table_names = 1:表名存储在磁盘是小写的,
但是比较的时候是不区分大小写
lower_case_table_names=2:表名存储为给定的大小写
但是比较的时候是小写的
unix,linux下lower_case_table_names默认值为 0 .
Windows下默认值是 1 . Mac OS X下默认值是 2
由于mysql8 在linux上默认的的lower_case_table_names模式为0,
且初始化后无法修改,因此,此处将其配置在初始化的参数中。
设置sql_mode,以兼容习惯性的Group By写法
- 在$DB_HOME/conf:/etc/mysql/conf.d目录下创建一个my.cnf文件,
- 文件内容参考如下
-
[mysqld]
sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,
NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,
NO_ENGINE_SUBSTITUTION'
Redis
docker run -p 6379:6379
--name redis
-v /data/redis/redis.conf:/etc/redis/redis.conf
-v /data/redis/data:/data
-d redis redis-server
/etc/redis/redis.conf --appendonly yes
–appendonly yes 开启aof
DockerFile
vi Dockerfile
FROM java:8
ADD xxx.jar xxx.jar
ENTRYPOINT ["java","-jar","xxx.jar"]
docker build -t myservice .
解读:
-t (tag) 构建的镜像名称 . 当前目录的Dockerfile
docker run -d -p 8080:8080 --name myservice myservice