- 拉取镜像等
#################################################
#拉取镜像
docker pull mysql:5.7
#################################################
# 直接启动,设置映射端口3318,mysql的root密码为root,容器移除之后不会保存数据。
docker run -p 3318:3306 --rm --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
##################################################
# 挂载主机目录启动
docker run --name --rm mysql -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
# a初始化之后password参数就没有作用了,可以去除
docker container stop mysql
docker run --rm --name mysql -v /usr/local/mysql/data:/var/lib/mysql -d mysql:5.7
- 设置配置文件
- 方法一,在容器内修改 /etc/mysql/my.cnf 之后,重新打包为一个镜像运行,不在这里说明
- 方法二,挂载主机的配置文件目录,由于容器会加载/etc/mysql/conf.d目录里的配置文件进行配置,因此我们把这个目录挂载到主机目录下.
vi /usr/local/mysql/etc/my.cnf
# 输入类似如下等相关mysql配置,保存
#[mysqld]
#connect-timeout=12
- 设置conf后运行,如下
docker run --rm --name mysql -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/etc:/etc/mysql/conf.d -d mysql:5.7
综上,并且加上docker启动时自动启动该镜像,–restart=always,去除测试用的 --rm 参数, 最终使用如下
docker run -p 3318:3306 --restart=always --name mysql -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/etc:/etc/mysql/conf.d -d mysql:5.7
参考: https://hub.docker.com/_/mysql?tab=description
p.s 其他镜像也是类似的方式.
showdoc
docker pull star7th/showdoc
#新建存放showdoc数据的目录
mkdir /showdoc_data
mkdir /showdoc_data/html
chmod 777 -R /showdoc_data
#启动showdoc容器。启动完了后别忘记后面还有转移数据的步骤。
docker run -d --name showdoc -p 4999:80 -v /showdoc_data/html:/var/www/html/ registry.docker-cn.com/star7th/showdoc
#转移数据。执行这里的时候留意命令行界面有没有权限禁止的错误提示。
#如果有,则检查权限,或者安全限制(比如说可能selinux会禁止docker进程写文件)
docker exec showdoc \cp -fr /showdoc_data/html/ /var/www/
docker run --restart=always -d --name showdoc -p 5080:80 -v /showdoc_data/html:/var/www/html/ registry.docker-cn.com/star7th/showdoc
wordpress
docker run --name wordpress -v /wordpress_data/html:/var/www/html/ -d --restart=always -i -t -p 5081:80/tcp -e WORDPRESS_DB_HOST=host:3306 -e WORDPRESS_DB_NAME=wordpress -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=password wordpress:4.9
#或者.
docker run --name wordpress --link mysql:mysql -d wordpress