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/
install
或update
docker run --rm --interactive --tty --volume $PWD:/app composer install --ignore-platform-reqs --no-scripts
- 或
composer install --ignore-platform-reqs --no-scripts
nginx
- 拉取鏡像
docker pull nginx
- 創建目錄, 用於掛載後面的相關東西
mkdir -p /usr/local/docker/nginx/www /usr/local/docker/nginx/logs /usr/local/docker/nginx/config /usr/local/docker/nginx/config/vhost
- 啓動一個
nginx
容器(注意:因爲docker不能掛載文件,只能掛載文件夾,所以文件只能複製)
docker run --name nginx-my -p 8080:80 -d nginx
- 拷貝容器內
Nginx
默認配置文件到本地 (docker ps
命令查看並獲取容器idCONTAINER 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
- 刪除之前創建的容器
docker rm -f nginx-my
- 創建
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
- 拉取鏡像
docker pull php:fpm
- 容器外使用
php
命令docker run --rm --interactive php:fpm php -v
- 容器外使用
- 運行容器
docker run -d -v /usr/local/docker/nginx/www:/www --name php-fpm php:fpm
- 安裝擴展
- 自帶的擴展,如:
mysqli pdo_mysql
等docker-php-ext-install mysqli pdo_mysql
- 其它擴展,如
swoole
(注意:
這裏的swoole
源碼包在/tmp
目錄下)
docker-php-ext-install /tmp/swoole
- 需要配置擴展的參數,用
docker-php-ext-configure
- 自帶的擴展,如:
mysql
- 拉取鏡像
docker pull mysql:5.7
- 運行容器,初始化
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
- 進入容器創建遠程連接用戶
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' IDENTIFIED BY 'test' WITH GRANT OPTION;
centos
- 拉取鏡像
docker pull centos
- 運行容器
docker run -itd --name centos imageID|鏡像名稱 /bin/bash
- 例子
docker run -itd --name centos 9f38484d220f /bin/bash
- 例子
- 進入容器
(退出容器: ctrl + p + q)
docker exec -it centos /bin/bash
- 安裝ssh,和常用軟件
yum -y install openssh-server passwd openssl
yum -y install vim lrzsz zip unzip net-tools gcc-c++ wget
- 啓動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
- 這裏一般會報如下錯
- 修改root 密碼
(如果宿主機是linux操作系統則跳過這一步)
passwd root
- 提交製作好的
centos
容器爲鏡像docker commit 9f38484d220f centos:v1
- 刪除提交的容器
docker rm -f centos
- 啓動製作好的
centos
容器(容器的22端口映射到宿機的2222端口)
docker run -itd -p 2222:22 --name centos centos:v2 /bin/bash
- 通過
ssh
連接centos
容器:宿機ip + 映射的2222端口