提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
提示:以下是本篇文章正文内容,下面案例可供参考
一、docker安装
参考:在Ubuntu 18.04安装Docker
问题:
- 第六步安装报错:Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages
解决:sudo apt-get dist-upgrade
二、学习使用
参考:Docker内功研习之基础命令
问题:
- docker数据持久化,进行-v挂载时,启动失败。docker ps命令下,没有启动的docker容器,docker logs -f 容器 报错:
touch: cannot touch ‘xxx’: Permission denied
Can not write to xxx. Wrong volume permissions?
解决:宿主机和容器间,挂载目录权限问题;
chown -R 1000 + 宿主机目录
1、docker安装mysql
docker search mysql:查询docker库的镜像
root@ubuntu:/home/stuDocker# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 11028 [OK]
mariadb MariaDB Server is a high performing open sou… 4178 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 820 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 88
参数说明:
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
docker pull mysql:5.7:下载docker镜像
docker images:查看下载的镜像
docker run --name=some-mysql -v /home/stuDocker/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=rootpw -p 3306:3306 -d mysql:5.7
参数说明:
-v:宿主机数据:容器数据
-e:密码
-p:端口映射
docker exec -it some-mysql bash
进入容器
exit
退出容器
docker cp aaa.txt some-mysql:/root
从宿主机将当前目录下的aaa.txt拷贝到some-mysql容器的/root目录下
docker cp some-mysql:/root/aaa.txt /text/
将docker容器some-mysql的/root/aaa.txt拷贝到宿主机的text目录下
2、docker安装redis
docker run --name=myredis -v /home/stuDocker/conf/redis.conf:/etc/redis/redis.conf -v /home/stuDocker/redis:/data -p 6379:6379 -d redis redis-server /etc/redis/redis.conf --appendonly yes
参数说明:
-d 以守护线程的方式运行(后台运行)
-p 宿主机:docker的ip映射
-v/home/stuDocker/conf/redis.conf:/etc/redis/redis.conf //把宿主机配置好的redis.conf挂载到容器内的指定位置
-v /home/stuDocker/redis:/data//把redis持久化的数据挂载到宿主机内,做数据备份
redis-server /etc/redis/redis.conf //使redis按照redis.conf的配置启动
–appendonly yes //redis启动后数据持久化
下载配置文件:http://download.redis.io/redis-stable/redis.conf
修改配置文件:
#bind 127.0.0.1 //127.0.0.1 限制只能本机访问 将其注释掉
protected-mode no # 默认yes,开启保护模式,限制为本地访问
requirepass 启动密码
安装遇到问题:启动容器失败,无报错,docker logs -f 无日志
解决:配置文件修改了daemonize yes,导致和启动命令的-d冲突