20分钟搭建Docker环境(详细教程)

20分钟搭建Docker环境(详细教程)

docker环境搭建

​ 官方文档地址:https://docs.docker.com/engine/install/centos/

​ 镜像安装包地址:https://hub.docker.com/

​ 安装环境:VM ,CentOS/7 ,桥接模式 (桥接模式搭建)

介绍:虚拟化容器技术。Docker基于镜像,可以秒级启动各种容器。每一种容器都是一个完整的运行 环境,容器之间互相隔离。

1.卸载旧版本:

​ 较旧的Docker版本称为docker或docker-engine。如果已安装这些程序,请卸载它们以及相关的依赖项

$ sudo yum remove docker \

docker-client \

docker-client-latest \

docker-common \

docker-latest \

docker-latest-logrotate \

docker-logrotate \

docker-engine

可能出现的问题:

​ 提示信息:admin is not in the sudoers file. This incident will be reported

​ 原因:装系统或者买服务器的时候没有将admin账号加入用户组,使用sudo命令的时候,出现这个情况。

解决办法:

1.切换到root用户下

$ su

接着输入root用户的密码:密码默认是不可见的,注意不要输错

2.添加sudo文件的写权限,命令是:

$ chmod u+w /etc/sudoers

3.编辑sudoers文件

$ vi /etc/sudoers

​ 找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)

ps:这里说下你可以sudoers添加下面四行中任意一条

you-user ALL=(ALL) ALL

%you-user ALL=(ALL) ALL

you-user ALL=(ALL) NOPASSWD: ALL

%you-user ALL=(ALL) NOPASSWD: ALL

​ 第一行:允许用户you-user执行sudo命令(需要输入密码). ​ 第二行:允许用户组you-user里面的用户执行sudo命令(需要输入密码). ​ 第三行:允许用户you-user执行sudo命令,并且在执行的时候不输入密码. ​ 第四行:允许用户组you-user里面的用户执行sudo命令,并且在执行的时候不输入密码.

​ 添加完成后:按esc键推出 按:然后输入wq保存退出

4.撤销sudoers文件写权限,命令:

chmod u-w /etc/sudoers

2.使用存储库安装

设置存储库:

安装yum-utils软件包(提供yum-config-manager 实用程序)并设置稳定的存储库。

$ sudo yum install -y yum-utils

# 官方yum源

$ sudo yum-config-manager \

--add-repo \

https://download.docker.com/linux/centos/docker-ce.repo

# 阿里云yum源

$ sudo yum-config-manager \

--add-repo \

http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

缓存软件包信息(可选):

将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度

yum makecache fast

安装DOCKER引擎:

安装最新版本的Docker Engine和容器

$ sudo yum install docker-ce docker-ce-cli containerd.io

3.启动Docker

$ sudo systemctl start docker

4.测试是否成功

通过运行hello-world 映像来验证是否正确安装了Docker Engine 。

$ sudo docker run hello-world

5.设置开机自启

$ sudo systemctl enable docker

6.设置镜像加速器

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

$ sudo mkdir -p /etc/docker

$ sudo tee /etc/docker/daemon.json <<-'EOF'

{

"registry-mirrors": ["https://7z4jy2c8.mirror.aliyuncs.com"]

}

EOF

$ sudo systemctl daemon-reload

$ sudo systemctl restart docker

7.docker常用命令

查看版本号

$ docker -v

查看镜像文件

$ docker images

启动docker

$ sudo systemctl start docker

查看启动进程

$ docker ps

设置开机自启

$ sudo systemctl enable docker

重启镜像文件

$ docker restart mysql

$ docker restart redis

设置docker镜像自动启动

$ docker update redis --restart=always

$ docker update mysql --restart=always

进入镜像内部控制台

$ docker exec -it mysql /bin/bash

启动docker

$ systemctl start docker

守护进程重启

$ sudo systemctl daemon-reload

重启docker服务

$ systemctl restart docker

重启docker服务

$ sudo service docker restart

关闭docker

$ service docker stop

关闭docker

$ systemctl stop docker

安装MySQL

​ 安装了官方提供的5.7版本的MySQL数据库

1.下载MySQL镜像

$ sudo docker pull mysql:5.7

2.配置MySQL

$ docker run -p 3306:3306 --name mysql \

-v /mydata/mysql/log:/var/log/mysql \

-v /mydata/mysql/data:/var/lib/mysql \

-v /mydata/mysql/conf:/etc/mysql \

-e MYSQL_ROOT_PASSWORD=root \

-d mysql:5.7

参数说明:

​ --name mysql:设置名字为mysql

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

​ -v /mydata/mysql/log:/var/log/mysql:将日志文件挂载到主机

​ -v /mydata/mysql/data:/var/lib/mysql:将数据文件夹挂载到主机

​ -v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机

​ -e MYSQL_ROOT_PASSWORD=root:初始化root用户的密码为root

​ -d mysql:5.7:后台方式运行镜像

挂载图:

docker容器文件挂载与端口映射

可能出的问题:

提示信息: [Warning] IPv4 forwarding is disabled. Networking will not work.

解决办法:

在docker的宿主机中更改以下

$ vi /usr/lib/sysctl.d/00-system.conf

添加如下信息:

net.ipv4.ip_forward=1

重启network服务

$ systemctl restart network

3.查看状态

# 查看镜像文件

$ docker images

# 查看启动进程

$ docker ps

# 查看对应镜像内部

$ docker exec -it mysql /bin/bash

# 进入镜像内部查看相关的文件夹

$ whereis mysql

# 退出镜像内部

$ exit

4.配置config文件

# 第一次创建配置文件

$ vi /mydata/mysql/conf/my.conf

添加如下配置信息

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

init_connect='SET collation_connection = utf8_unicode_ci'

init_connect='SET NAMES utf8'

character-set-server=utf8

collection-server=utf8_unicode_ci

skip-character-set-client-handshake

skip-name-resolve

修改配置后需要重启MySQL

$ docker restart mysql

安装redis

1.下载redis

$ docker pull redis

2.创建实例并启动

# 默认没有这如下文件夹和文件,需要创建

$ mkdir -p /mydata/redis/conf

$ touch /mydata/redis/conf/redis.conf

#启动redis服务

$ docker run -p 6379:6379 --name redis \

-v /mydata/redis/data:/data \

-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \

-d redis redis-server /etc/redis/redis.conf

参数说明:

​ -p 6379:6379:端口映射

​ -v /mydata/redis/data:/data:将数据文件夹挂载到主机

​ -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf:将配置文件挂载到主机

​ -d redis redis-server /etc/redis/redis.conf:启动的时候redis-server 加载redis.conf配置文件

3.查看信息

$ docker ps

$ docker images

# 进入redis镜像控制台

$ docker exec -it redis/bash

# 启动redis客户端

$ docker exec -it redis redis-cli

4.redis配置

redis默认是没有持久化的,数据都存在内存中,一旦重启数据就会丢失

配置持久化策略:

详细配置地址:https://redis.io/topics/config 详细配置我已经上传:redis.conf

$ vi /mydata/redis/conf/redis.conf

配置AOF持久化策略,添加如下信息:

appendonly yes

相关推荐

手机吉他调音器软件哪款好用?8款吉他调音器软件推荐
日博365哪个是真的

手机吉他调音器软件哪款好用?8款吉他调音器软件推荐

冷冻的包子要蒸多久?分享正确方法和技巧,随吃随蒸特别方便
365彩票下载1.0.0老版本

冷冻的包子要蒸多久?分享正确方法和技巧,随吃随蒸特别方便

有哪些Tomcat常见异常及解决方案代码
365彩票下载1.0.0老版本

有哪些Tomcat常见异常及解决方案代码

《情歌王》粤语版叫什么名字?《情歌王》有多少首歌组成?
日博365哪个是真的

《情歌王》粤语版叫什么名字?《情歌王》有多少首歌组成?

关于猊的成语
365bet哪个国家的

关于猊的成语

销售和退款政策
365彩票下载1.0.0老版本

销售和退款政策