docker 配置
虚拟化容器技术。基于镜像,可以秒级启动各种容器;每种容器都是一个完整的运行环境,容器之间相互隔离。
docker hub 镜像
docker官网
卸载旧版本
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
3.安装docker引擎(最新版本)
sudo yum install docker-ce docker-ce-cli containerd.io
4.启动docker
sudo systemctl start docker
5.开机自启
sudo systemctl enable docker
6.docker 国内镜像(阿里云)
centos
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://h7j6vpo3.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker hub上查看软件的tag确认安装版本
ps: 查看cpu架构
dpkg --print-architecture |
---|
docker 进入容器
docker exec -it 容器名/id /bin/bash
mysql 安装
sudo docker pull mysql:5.7
遇到问题:
failed to register layer: Error processing tar file(exit status 1): write /usr/bin/resolve_stack_dump: no space left on device
原因:inodes资源耗尽,需要清理一下
df -i
sudo find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n
df -h的比较好解释,就是查看磁盘容量的使用情况。至于df -i,先需要去理解一下inode
以博客主的个人理解,最简单的说法,inode包含的信息:文件的字节数,拥有者id,组id,权限,改动时间,链接数,数据block的位置。相反是不表示文件大小。
或者这个docker清理工具
curl -s https://raw.githubusercontent.com/ZZROTDesign/docker-clean/v2.0.4/docker-clean |
sudo tee /usr/local/bin/docker-clean > /dev/null && \
sudo chmod +x /usr/local/bin/docker-clean
docker-clean
docker映射
su root vagrant
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 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: Error response from daemon: error creating aufs mount to /var/lib/docker/aufs/mnt/08ad0573f83735ff94a5020a2a4a6cf9c366a372cc7e6a4496a0aaf21448d…….b8f9a692eb8bd9b88b8560b2b660=ro+wh,dio,xino=/dev/shm/aufs.xino: permission denied.
不用中科大的镜像就解决问题了。。。。。。
修改mysql的配置
vi /mydata/mysql/conf/my.cnf
[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 可视化管理工具 sqlyoung
redis 可视化管理工具 redisdesktopmanager
redis安装
进入虚拟机,切换root用户
docker pull redis
为了防止linux将文件映射成目录,需要先川建好文件。
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
docker映射
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默认没有持久化,需要修改conf配置
vi /mydata/redis/conf/redis.conf
添加
appendonly yes
虚拟机直接进入rediscli
docker exec -it redis redis-cli