docker always_Ubuntu16.04服务器环境配置 – Docker、MySQL、Redis

Ubuntu16.04 服务器环境配置 – Docker、MySQL、Redis

3cc82115ff54494a907f43ae0c61bb91

安装Docker

1. 卸载旧版本

sudo apt-get remove docker docker-engine docker.io

2. 安装 https 相关的软件包

sudo apt-get update # 先更新一下软件源库信息sudo apt-get install  apt-transport-https  ca-certificates  curl  software-properties-common

3. 设置apt仓库地址

鉴于国内网络问题,使用国内(阿里云)地址,添加 阿里云 的apt仓库(使用国内源)。

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -sudo add-apt-repository  "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu  $(lsb_release -cs)  stable"

4. 安装 Docker 软件

sudo apt-get updatesudo apt-get install docker-ce # 安装最新版的docker

5. 查看Docker版本

docker --version

6. 解决 docker cli 权限问题

想要避免每次在执行 docker 命令都加一个 sudo,可以创建一个 docker 用户组,并将要使用 docker 的普通用户添加到该组。dockerd 进程启动时会将 Unix socket 的读写权限都赋予给 docker 用户组。这样就不需要使用 sudo 了。

创建 docker 用户组

sudo groupadd docker

添加当前用户到 docker 用户组

sudo usermod -aG docker $USER

接下来注销当前用户并重新登录,使前面的设置生效。

7. 使用 docker hub 国内镜像

对于使用 systemd 的系统(Ubuntu 16.04+、Debian 8+、CentOS 7), 在配置文件 /etc/docker/daemon.json 中加入:

{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]}

重新启动 dockerd:

sudo systemctl restart docker

安装Redis

1. 创建目录redis,用于存放后面的相关东西

sudo mkdir -p /data/redis/datadirsudo chown -R $USER:$USER /data/redis/

2. 拉取Redis最新版镜像

docker pull redis

3. 运行容器

docker run --name redis --restart=always -p 6379:6379 -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -v /data/redis/datadir:/data -d redis redis-server --appendonly yes

命令说明:

– –restart=always : 设置实例自动重启

– -p 6379:6379 : 将容器的6379端口映射到主机的6379端口

– -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime : Docker容器时间与主机时间保持一致

– -v /data/redis/datadir:/data : 将主机中redis的data挂载到容器的/data

– redis-server –appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置

4. 连接、查看容器

docker exec -it redis redis-cli

安装Mysql

1. 创建目录mysql

用于存放后面的相关东西。

sudo mkdir -p /data/mysql/datadir /data/mysql/logs /data/mysql/conf.dsudo chown -R $USER:$USER /data/mysql/

2. 添加配置文件my.cnf

vi /data/mysql/conf.d/my.cnf

内容如下:

[mysqld]pid-file = /var/run/mysqld/mysqld.pidsocket = /var/run/mysqld/mysqld.sockdatadir = /var/lib/mysql#log-error = /var/log/mysql/error.log# By default we only accept connections from localhost#bind-address = 127.0.0.1# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0character_set_server=utf8mb4character_set_filesystem=utf8mb4collation-server=utf8mb4_unicode_ciinit-connect='SET NAMES utf8mb4'init_connect='SET collation_connection = utf8mb4_unicode_ci'skip-character-set-client-handshake

3. 拉取Mysql版本为5.7的镜像

docker pull mysql:5.7

4. 运行容器

docker run --restart=always --name mysql5.7 -p 3306:3306 -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -v /data/mysql/datadir:/var/lib/mysql -v /data/mysql/logs:/logs -v /data/mysql/conf.d/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

命令说明:

– -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。

– -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime : Docker容器时间与主机时间保持一致

– -v /data/mysql/datadir:/var/lib/mysql : 将主机mysql下的datadir目录挂载到容器的 /var/lib/mysql

– -v /data/mysql/logs:/logs : 将主机mysql目录下的 logs 目录挂载到容器的 /logs

– -v /data/mysql/conf.d/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf 将主机mysql目录下的 conf.d/my.cnf 挂载到容器的 /etc/mysql/mysql.conf.d/mysqld.cnf

– -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。

5. 查看容器启动情况

docker ps

6. 连接Mysql数据库

mysql -h127.0.0.1 -uroot -p123456

7. 新建库并设置用户访问权限

新建数据库testdb

create database testdb;

创建用户testuser,可以远程访问

create user testuser@'%' identified by 'test123';

设置用户testuser可在远程访问访问库testdb

GRANT ALL PRIVILEGES ON testdb.* TO testuser;FLUSH PRIVILEGES;

参考:

  1. 《Docker Hub 源使用帮助》http://mirrors.ustc.edu.cn/help/dockerhub.html?highlight=docker
  2. 《Ubuntu16.04安装Docker》https://segmentfault.com/a/1190000014066388
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值