centos安装docker及docker安装mysql

/etc/docker/daemon.json

{
 "exec-opts": ["native.cgroupdriver=systemd"],
 "registry-mirrors": ["https://f9dk003m.mirror.aliyuncs.com"],
 "data-root": "/mnt/docker",
 "log-driver": "json-file",
 "log-opts": {
	 "max-size": "3G",
     "max-file": "10" }
},
 "storage-driver": "overlay2",
 "storage-opts": [
   "overlay2.override_kernel_check=true",
   "overlay2.size=50GB"
   ]
}

ustc镜像

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

一、centos安装docker

centos8安装参考网址

# 1.切换镜像源
[root@master ~]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

# 2.查看当前镜像源中支持的docker版本
[root@master ~]# yum list docker-ce --showduplicates

# 3.安装特定版本的docker-ce
# 必须制定--setopt=obsoletes=0,否则yum会自动安装更高版本
[root@master ~]# yum install --setopt=obsoletes=0 docker-ce-18.06.3.ce-3.el7 -y
                 yum install --setopt=obsoletes=0 docker-ce-20.10.17 -y
# 4.添加一个配置文件
#查看本人的镜像加速地址:https://cr.console.aliyun.com/cn/instances/mirrors
#Docker 在默认情况下使用Vgroup Driver为cgroupfs,而Kubernetes推荐使用systemd来替代cgroupfs
[root@master ~]# mkdir /etc/docker
[root@master ~]# cat <<EOF> /etc/docker/daemon.json
{
"registry-mirrors": ["https://f9dk003m.mirror.aliyuncs.com"]
}
EOF

# 5、启动dokcer
[root@master ~]# systemctl restart docker
[root@master ~]# systemctl enable docker

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1.安装yum -y install docker(配置阿里云加速)
将/etc/docker/daemon.json的文件内容改为
{
  "registry-mirrors": ["https://f9dk003m.mirror.aliyuncs.com"]
}
2.启动docker:systemctl start docker
3.拉取镜像:docker pull mysql:5.7
4.删除镜像:docker rim + 镜像的IMAGE ID
5.查看所有本地镜像 docker images
6.docker虚悬镜像查看:docker image ls -f dangling=true
7.docker虚悬镜像删除:docker image prune
6.docke启动mysql:docker run -p 3306:3306 --name(自定义容器名) mysql01 -e MYSQL_ROOT_PASSWORD=123 -d(后台运行) mysql(指定镜像模板)
7.获取容器的日志地址docker inspect --format '{{.LogPath}}' 97069f94437b
cat /var/lib/docker/containers/97069f94437b86b50341f8253d85f426884315c3d027f7b7fa975751c7d8e18e/97069f94437b86b50341f8253d85f426884315c3d027f7b7fa975751c7d8e18e-json.log

1.docker daemon.json配置详解

daemon.json 文件是 Docker 守护进程(Docker daemon)的配置文件,用于指定 Docker 守护进程的各种参数和选项。
以下是一些常见的 daemon.json 配置选项及其详细说明:

1. log-driver: 指定 Docker 容器日志驱动程序,默认为 json-file。可以设置为其他日志驱动程序,如 syslog、journald 等。
2. log-opts: 用于指定日志驱动程序的特定选项的映射。例如,可以使用 max-size 选项来限制容器日志文件的大小。

其中,<max_size>指定最大文件大小,以字节为单位。可以使用K,M或G等后缀来指定千字节,兆字节或千兆字节。
例如,“max-size”: "10M"将设置最大文件大小为10兆字节。
<max_file_count>指定最大文件数量。当达到最大文件数量时,最旧的文件将被删除以腾出空间。
例如,“max-file”: "5"将设置最多存储5个日志文件。

3.storage-driver: 指定 Docker 使用的存储驱动程序,默认为 overlay2。可以根据操作系统和需求选择其他存储驱动程序,如 aufs、btrfs 等。
4.insecure-registries: 指定不安全的 Docker 镜像仓库地址列表。默认情况下,Docker 只信任 HTTPS 连接的镜像仓库,通过该选项,可以配置允许使用 HTTP 连接的镜像仓库。
5.registry-mirrors: 指定 Docker 镜像仓库的镜像加速器地址列表。通过配置镜像加速器,可以提高下载镜像的速度。
6.dns: 指定容器内部的 DNS 服务器地址列表。默认情况下,Docker 使用宿主机的 DNS 设置。但是,可以通过该选项设置自定义的 DNS 服务器。
7.dns-search: 指定容器内部 DNS 查询时的默认搜索域列表。
8.bip: 指定 Docker 容器的默认网桥 IP 地址和子网掩码。默认情况下,Docker 使用 172.17.0.1/16 作为默认网桥 IP 地址。
9.default-ulimits: 指定 Docker 容器的默认资源限制。可以设置容器的 CPU、内存等资源的限制。
10.hosts: 指定容器内部的 /etc/hosts 文件的内容。可以配置自定义的主机名和 IP 地址映射。

{
 "exec-opts": ["native.cgroupdriver=systemd"],
 "registry-mirrors": ["https://f9dk003m.mirror.aliyuncs.com"],
 "log-driver": "json-file",
 "log-opts": {
	 "max-size": "5G",
     "max-file": "3" }
}
当 Docker 的 overlay2 存储驱动程序使用过长时间后,可能会产生大量的未使用图层(layer)和临时文件,导致文件系统空间占用过高。这可能会导致 overlay2 文件过大。以下是一些解决方法:
清理未使用图层: 使用 docker system prune 命令可以清理掉未使用的图层和容器。运行以下命令来清理未使用的资源:
bash
docker system prune -a --volumes
请注意,此命令将删除未使用的图层、容器以及相关的卷。确保在执行之前备份您的重要数据。
升级 Docker 版本: 有时,Docker 的旧版本可能存在存储驱动程序中的问题。尝试升级到最新的稳定版本,其中可能包含已修复的错误或改进的功能。
更改存储驱动程序: 如果上述解决方案无效,考虑切换到其他存储驱动程序,如 aufs 或 btrfs。请注意,更改存储驱动程序需要谨慎操作,并且可能需要重新创建 Docker 容器和映像。
调整存储驱动程序的参数: 对于 overlay2 存储驱动程序,可以尝试调整其参数以减少文件系统占用。通过修改 daemon.json 文件,添加以下配置:
json
{ "data-root": "/data/docker",
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true",
    "overlay2.size=100GB" 
  ]
}
上述示例中,我们设置了 overlay2.size 参数为 100GB,用于限制容器层的大小。根据实际情况,您可以根据需要调整此值

二、docker安装mysql




docker pull mysql:5.7.33
docker run -p 3307:3306 --name mysql5.7  -e MYSQL_ROOT_PASSWORD=123456 -d 8cf625070931
lower_case_table_names=1
docker exec -it 70c85c2f0073  /bin/bash
cd /etc/mysql/mysql.conf.d/
cat mysqld.cnf
echo 'lower_case_table_names=1' >> mysqld.cnf
show Variables like '%table_names'
查看lower_case_table_names的值,0代表区分,1代表不区分。
echo 'sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' >> mysqld.cnf
1.退出docker的两种方式:
exit :run进去容器,exit退出,容器停止
ctrl+p+q:run进去容器,ctrl+p+q退出,容器不停止
2.查看容器日志:
docker logs 容器ID
3.查看容器内运行的进程:
docker top 容器ID
4.查看容器内部细节:
docker inspect 容器ID
5.进入正在运行的容器并以命令行交互
docker exec -it 容器ID bashShell
(exec是在容器中打开新的终端,并且可以启动新的进程前exit退出,不会导数容器的停止。)
重新进入docker attach 容器ID(attach直接进入容器启动命令的终端,不会启动新的进程用exit返出,会导致容器的停止。
)
6.从容器内拷贝文件到主机上:
docker cp 容器ID:容器内路径目的主机路径
7.export导出容器的内容留作为一个tar归档文件[对应import命令]
docker export 容器ID>文件名.tar
8.import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]
cat文件名.tar [ docker import-镜像用户/镜像名:镜像版本号
9.docker commit提交容器副本使之成为一个新的镜像
docker commit -m="提交的描述信息"-a="作者"容器ID 要创建的目标镜像名:[标签名]
10.docker容器卷
运行一个带有容器卷存储功能的容器实例:docker run -it --privileged=true -v/宿主机绝对路径目录:/容器内目录 镜像名
(默认读写)docker run -it --privileged=true -v/宿主机绝对路径目录:/容器内目录:rw 镜像名
(只读)    docker run -it --privileged=true -v/宿主机绝对路径目录:/容器内目录:ro 镜像名
11.卷的继承和共亨
容器2继承容器1的卷规则 docker run -it --privileged=true --volumes-from 父类 --name u2 ubuntu
1. 想要删除容器,则要先停止所有容器(当然,也可以加-f强制删除,但是不推荐):
docker stop $(docker ps -a -q)
2. 删除所有容器
docker  rm $(docker ps -a -q)
3.删除所有镜像(慎重)
 docker rmi $(docker images -q)
1.将容器打包成镜像
#docker commit 容器ID 镜像名称:镜像版本
docker commit 67b3481a8a06 pv_build:1.0
2.将镜像打成tar包
#docker save -o 打包名称.tar 镜像名称:镜像版本
docker save -o pv_build_1.0.tar pv_build:1.0
3.将镜像tar包导入docker镜像
docker load -i pv_build_1.0.tar
posted @ 2021-09-03 13:58  kht  阅读(330)  评论(0编辑  收藏  举报