目录
docker 安装mysql
## 查询mysql
docker search mysql
## 安装mysql.没有指定版本就会下载最新的版本
docker pull mysql
## 查看镜像
docker images
## 在data下创建mysql 目录
mkdir /data/
cd /data
mkdir mysql_docker
cd mysql_docker
echo $PWD
## 启动mysql容器,在var/lib/docker/containers/下查看容器
sudo docker run --name mysqlserver -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 mysql:latest
## 进入mysql容器,并登陆mysql
docker exec -it mysqlserver bash
mysql -uroot -p
## 开启远程访问权限
use mysql;
select host,user from user;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
### 命令说明:
-p 3306:3306:将容器的3306端口映射到主机的3306端口
-v :将主机当前用户目录下的mysql文件夹挂载到容器的文件夹下 下,在mysql容器中产生的数据就会保存在本机mysql目录下
-e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码
-d 后台运行容器
--name 给容器指定别名
--privileged=true 可能会碰到权限问题,需要加参数
docker 安装nginx
## 先安装nginx镜像,不指定版本时默认下载最新版本。
docker pull nginx
## 创建一个容器并运行命令 (为了生成后续php-nginx的配置文件)
sudo docker run --name nginx-test -p 8081:80 -d nginx
## 创建文件
mkdir -p /www /data/nginx/logs /data/nginx/conf
## 拷贝虚拟机中的nginx配置文件到本地服务器
sudo docker cp 容器id:/etc/nginx/nginx.conf /data/nginx/conf
run:创建一个新的容器
--name:指定容器的名称(如果留空,docker会自动分配一个名称)
-p:导出容器端口到本地服务器,格式:-p <local-port>:<container-port>。在本例中,我们映射容器的80端口到本地服务器的80端口。
nginx:是 Dockerhub 上下载nginx镜像名称(如果本地没有可用的镜像,Docker会自动下载一个)
-d:后台启动。
docker 安装php
## 拉取镜像
docker pull php
## 启动php
docker run --name php74 -v /www:/www -d php:7.4-fpm
## 创建php-nginx配置文件目录
mkdir /data/nginx/conf/conf.d
## 在该目录下添加/data/nginx/conf/conf.d/runoob-test-php.conf 文件,内容如下:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ .php$ {
fastcgi_pass php72:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
include fastcgi_params;
}
}
## 启动nginx
sudo docker run --name php-nginx -p 80:80 -d -v /www:/usr/share/nginx/html -v /data/nginx/conf/conf.d:/etc/nginx/conf.d:ro --link php74:php nginx
docker 安装Redis
## 创建数据与配置文件目录
mkdir /data/redis/data
mkdir /data/redis/conf/redis.conf
redis.conf配置文件可如下
#bind 127.0.0.1 //允许远程连接
protected-mode no
appendonly yes //持久化
requirepass 123456 //密码
docker run -p 6379:6379 --name redis01 -v /app/redis/redis.conf:/etc/redis/redis.conf -v /app/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
## 启动redis
docker run -d --name redis -p 6379:6379 redis:latest redis-server --appendonly yes --requirepass “zxc123”
docker 安装php扩展
## 进入容器&&安装扩展
## 相关依赖安装
方法1:
apt-get update && apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libpng-dev
#安装mysqli
docker-php-ext-install mysqli
方法2:
pecl install -o -f redis && rm -rf /tmp/pear && docker-php-ext-enable redis
方法3:
docker exec -it php /bin/bash #进入php容器
#相关依赖安装
apt-get update && apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libpng-dev
pecl install swoole-4.2.12 #安装swoole拓展
docker-php-ext-enable swoole #启用swoole拓展
最后重启php docker restart php
- 注意事项:
fastcgi_pass 对应的地址是PHP镜像地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' php72-fpm //查看php镜像的ip地址
补充命令: -
将主机/data/conf/conf.d/default.conf目录拷贝到容器96f7f14e99ab的/etc/nginx/conf.d/default.conf目录下 docker cp /data/conf/conf.d/default.conf d0224e584cd7:/etc/nginx/conf.d/default.conf
-
以特权方式运行容器 docker run -it --privileged=true -d nginx
docker 安装hyperf
## 安装
docker run --name hyperf
-v /www/hyperf:/data/project
-p 9501:9501 -it
--privileged -u root
--entrypoint /bin/sh
hyperf/hyperf:7.4-alpine-v3.11-swoole
docker 安装gitlab
## 安装
docker run --name='gitlab-ce' -d -p 10022:22 -p 80:80 --restart always --volume /data/gitlab/config:/etc/gitlab --volume /data/gitlab/logs:/var/log/gitlab --volume /data/gitlab/data:/var/opt/gitlab/ gitlab/gitlab-ce
--volume : 第一个路径为本地路径, 第二个为docker中gitlab服务器路径
1. 修改/data/gitlab/config/etc/gitlab.rb
将external_url改为你的ip地址
2. 修改改/data/gitlab/data/gitlab-rails/etc/gitlab.yml
将host修改成ip地址
将端口改为你需要的端口
docker安装phpstudy
1. docker pull centos
2. docker run -i -t -d --name phpstudy -p 20:20 -p 21:21 -p 80:80 -p 443:443 -p 888:888 -p 9080:9080 -p 3306:3306 --privileged=true -v /Users/jason/Desktop/data/docker/centos/www:/www centos
3. docker exec -it 容器id /bin/bash (进入centos容器)
4. yum install -y wget && wget -O install.sh https://notdocker.xp.cn/install.sh && sh install.sh