docker[git,composer,nginx,php,mysql,centos ]

git

1、拉取鏡像

docker pull alpine/git

2、用法

  • 單獨使用
    • docker run -ti --rm -v ${HOME}:/root -v $(pwd):/git alpine/git [--version | status | pull | push...]
  • 實例,查看版本
docker run -ti --rm -v ${HOME}:/root -v $(pwd):/git alpine/git --version
  • 全局git命令
    • 編輯 .bashrc 文件
    vim ~/.bashrc
    
    • 文件最後面添加
    function git () {
        (docker run -ti --rm -v ${HOME}:/root -v $(pwd):/git alpine/git "$@")
    }
    
    • 刷新
    source ~/.bashrc
    

3、每次都要輸密碼解決:

git config --global credential.helper store

composer

  • 拉取鏡像 docker pull composer
  • 查看 composer 版本
docker run --rm --interactive --tty --volume $PWD:/app --volume /tmp/composer:/tmp composer --version
  • 配置簡化寫法 composer --version

    • 編輯文件 .bashrc
    vim ~/.bashrc
    
    • 內容如下
    function composer () {
        (docker run --rm --interactive --tty --volume $PWD:/app --volume /tmp/composer:/tmp composer "$@")
    }
    
    • 刷新
    source ~/.bashrc
    
    • 設置鏡像地址
      • 單項目 (注意:在使用的地方沒有composer.json文件的時候自己創建文件,內容爲 {} ,再執行下面的命令)
      composer config repo.packagist composer https://packagist.laravel-china.org
      
      • 全局
      composer config -g repo.packagist composer https://packagist.laravel-china.org
      
  • 設置阿里雲鏡像

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
composer config repo.packagist composer https://mirrors.aliyun.com/composer/
  • installupdate
    docker run --rm --interactive --tty --volume $PWD:/app composer install --ignore-platform-reqs --no-scripts
    
    composer install --ignore-platform-reqs --no-scripts
    

nginx

  1. 拉取鏡像
    docker pull nginx
    
  2. 創建目錄, 用於掛載後面的相關東西
    mkdir -p /usr/local/docker/nginx/www /usr/local/docker/nginx/logs /usr/local/docker/nginx/config /usr/local/docker/nginx/config/vhost
    
  3. 啓動一個 nginx 容器 (注意:因爲docker不能掛載文件,只能掛載文件夾,所以文件只能複製)
    docker run --name nginx-my -p 8080:80 -d nginx
    
  4. 拷貝容器內 Nginx 默認配置文件到本地 (docker ps 命令查看並獲取容器id CONTAINER ID)
    docker cp 24942052d9fa:/etc/nginx/nginx.conf /usr/local/docker/nginx/config
    
    docker cp 24942052d9fa:/etc/nginx/conf.d/default.conf /usr/local/docker/nginx/config/vhost
    
  5. 刪除之前創建的容器
    docker rm -f nginx-my
    
  6. 創建 nginx 容器,並掛載相關目錄 需要連接php容器: --link php-fpm:php
    docker run -it -d -p 80:80 --name nginx \
    -v /usr/local/docker/nginx/www:/usr/share/nginx/html \
    -v /usr/local/docker/nginx/config/nginx.conf:/etc/nginx/nginx.conf \
    -v /usr/local/docker/nginx/logs:/var/log/nginx \
    -v /usr/local/docker/nginx/config/vhost:/etc/nginx/conf.d nginx
    

php

  1. 拉取鏡像
    docker pull php:fpm
    
    • 容器外使用 php 命令
      docker run --rm --interactive php:fpm php -v
      
  2. 運行容器
    docker run -d -v /usr/local/docker/nginx/www:/www --name php-fpm php:fpm
    
  3. 安裝擴展
    • 自帶的擴展,如:mysqli pdo_mysql
      docker-php-ext-install mysqli pdo_mysql
      
    • 其它擴展,如 swoole (注意: 這裏的 swoole 源碼包在 /tmp 目錄下 )
      docker-php-ext-install /tmp/swoole
      
    • 需要配置擴展的參數,用 docker-php-ext-configure

mysql

  1. 拉取鏡像
    docker pull mysql:5.7
    
  2. 運行容器,初始化 root 密碼爲 root
    docker run -v /usr/local/docker/mysql:/var/lib/mysql --name mysql -e MYSQL_ROOT_PASSWORD=root -d -p 3306:3306 mysql:5.7
    
  3. 進入容器創建遠程連接用戶
    GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' IDENTIFIED BY 'test' WITH GRANT OPTION;
    

centos

  1. 拉取鏡像
    docker pull centos
    
  2. 運行容器
    docker run -itd --name centos imageID|鏡像名稱 /bin/bash
    
    • 例子
      docker run -itd --name centos 9f38484d220f /bin/bash
      
  3. 進入容器 (退出容器: ctrl + p + q)
    docker exec -it centos /bin/bash
    
  4. 安裝ssh,和常用軟件
    yum -y install openssh-server passwd openssl
    
    yum -y install vim lrzsz zip unzip net-tools gcc-c++ wget
    
  5. 啓動ssh
    /usr/sbin/sshd
    
    • 這裏一般會報如下錯
      Could not load host key: /etc/ssh/ssh_host_rsa_key
      Could not load host key: /etc/ssh/ssh_host_ecdsa_key
      Could not load host key: /etc/ssh/ssh_host_ed25519_key
      
    • 依次執行下面命令解決報錯
      ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
      
      ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
      
      ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''
      
      sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
      
      sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config
      
    • 再次執行命令 (這裏如果出現警告(WARNING)只要 22 端口啓動可以忽略
      /usr/sbin/sshd
      
  6. 修改root 密碼 (如果宿主機是linux操作系統則跳過這一步)
    passwd root
    
  7. 提交製作好的 centos 容器爲鏡像
    docker commit 9f38484d220f centos:v1
    
  8. 刪除提交的容器
    docker rm -f centos
    
  9. 啓動製作好的 centos 容器 (容器的22端口映射到宿機的2222端口)
    docker run -itd -p 2222:22 --name centos centos:v2 /bin/bash
    
  10. 通過 ssh 連接 centos 容器:宿機ip + 映射的2222端口
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章