1 docker的使用
一、基础
1、镜像
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
 | "https://hub.littlediary.cn"
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://dockerhub.azk8s.cn",
    "https://mirror.ccs.tencentyun.com",
    "https://registry.cn-hangzhou.aliyuncs.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://docker.m.daocloud.io",  
    "https://noohub.ru", 
    "https://huecker.io",
    "https://dockerhub.timeweb.cloud" 
 ]
 | 
 
2、进入容器
| 1
 | docker exec -it php-fpm bash
 | 
 
3、清除缓存
二
1、构建项目
| 1
 | docker-compose up --build
 | 
 
2、重新构建项目
| 1
2
3
4
5
6
7
8
 | # 清理旧镜像缓存(重要!)
docker builder prune --force
# 重新构建
docker build -t laravel52-app .
# 运行容器
docker run -it -p 8000:8000 laravel52-app
 | 
 
三、启动
1、启动第一个docker项目
| 1
2
 | docker build -t hello-docker .
docker run hello-docker
 | 
 
2、启动默认教程的容器
| 1
 | docker run -d -p 8090:80 docker/getting-started
 | 
 
3、启动laravel项目
| 1
 | php artisan serve --host=0.0.0.0
 | 
 
2 docker运行laravel5全流程
1、拉取 PHP 7.0.0 镜像
| 1
 | docker pull php:7.0-cli
 | 
 
2、运行容器
| 1
 | docker run -itd --name my-php-container -p 8000:8000 php:7.0-cli
 | 
 
3、进入容器进行操作
| 1
 | docker exec -it my-php-container bash
 | 
 
4、(额外)启动、停止、删除容器
| 1
 | docker run/stop/rm my-php-container
 | 
 
5、(额外)保存更改
如果在容器中进行了配置更改或安装了额外的软件包,可以将容器保存为新的镜像。
| 1
 | docker commit my-php-container php:custom-7.0.0
 | 
 
6、配置环境
| 1
2
3
4
5
6
7
8
 | # 替换软件源
echo > /etc/apt/sources.list
1、echo  "deb [trusted=yes] http://mirrors.tuna.tsinghua.edu.cn/debian buster main contrib non-free" >/etc/apt/sources.list
2、echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free" >>/etc/apt/sources.list
3、echo  "deb http://security.debian.org/debian-security buster/updates main contrib non-free" >>/etc/apt/sources.list
 | 
 
1、在宿主机上下载 Composer 安装脚本
| 1
 | wget https://install.phpcomposer.com/installer -O composer-setup.php
 | 
 
2、将脚本复制到容器
| 1
 | docker cp composer-setup.php my_container:/tmp/composer-setup.php
 | 
 
3、在容器中安装 Composer
| 1
2
3
 | docker exec -it my_container bash
php /tmp/composer-setup.php
mv composer.phar /usr/local/bin/composer
 | 
 
4、安装必要php拓展
mongodb拓展版本为1.5.0可以启动
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
 | # 更新软件包
apt-get update
# 下载拓展,要有以下拓展方可运行
PS C:\Users> php -m
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
gd
gettext
gmp
hash
iconv
imap
intl
json
ldap
libxml
mbstring
mcrypt
mongodb
mysqli
mysqlnd
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
tokenizer
wddx
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib
[Zend Modules]
 | 
 
7、文件复制进容器
| 1
 | docker cp "D:\Misc\Docker\code\dns_web\." my-php-container:/var/www/html
 | 
 
8、运行项目
| 1
2
3
4
 | docker exec -it my-php-container bash
cd /var/www/html/...
composer install
php artisan serve --host=0.0.0.0
 | 
 
做出修改后使用以下命令将文件更新 – 此步骤应由挂载卷来操作,此法不方便
| 1
 | docker cp "D:/Misc/Docker/code/dns_web/." my-php-container:/var/www/html/code/dns_web
 |