docker 实战操作

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
原文地址:https://www.cnblogs.com/zlzxc/p/14984991.html