三、超强大的应用容器引擎Docker 你值得拥有
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
附上网站:<https://hub.docker.com/
关于docker的一些解释:<http://dockone.io/article/9209
1、安装docker<https://docs.docker.com/engine/install/centos/
卸载旧版本:
sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
sudo yum install -y yum-utils
安装新版本:
sudo yum-config-manager
–add-repo
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
启动docker: sudo systemctl start docker
docker images:当前虚拟机下载的镜像
sudo systemctl enable docker 设置虚拟机开机自启
2、docker设置镜像加速
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“https://ttcs65w3.mirror.aliyuncs.com”]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
3、docker安装mysql:
*sudo docker pull mysql:5.7 安装5.7版本mysql
附加:su root 切换到root用户
*创建mysql实例并启动
将容器的3306端口映射到宿主机的3306端口。
左边为宿主主机端口 右边为容器的端口
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
docker ps 查看正在启动的进程
docker run 创建一个新的容器并运行一个命令:https://blog.csdn.net/weixin_33889245/article/details/91907299?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase
语法:docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
-i:以交互模式运行容器,通常与 -t 同时使用
-d:后台运行容器,并返回容器ID
–name:为容器指定一个名称
-p:端口映射,格式为:主机(宿主)端口:容器端口
-v: 挂载宿主机文件夹,格式为: 宿主机文件夹:容器文件夹
–link: 添加链接到另一个容器
-m:设置容器使用内存最大值;
docker的容器之间互相隔离
进入到某个容器docker exec -it 容器名 目录名
进入到mysql容器:docker exec -it mysql /bin/bash
mysql容器相当于一个小的linux
修改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
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
重启mysql: docker restart mysql
4、docker安装redis:
docker pull redis
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
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
启动redis客户端
docker exec -it redis redis-cli
启动redis的AOF持久化方式
在redis.conf下加上appendonly yes