【二】从0到1,用docker搭建php开发环境

飛(fìe) 2018-11-15 541

在 从0到1,docker入门学习使用【一】中我们已经安装好了docker,并且可以用docker命令来做一些事情了,这里我们就来重点搭建一个php开发环境的容器。

当然可以找一些已经配好的直接run,我们下面还是要配置一下。

一、拉取ubuntu镜像

1、查找镜像

方式一、直接在终端输入命令;docker search ubuntu,结果如下

feideMacBook-Pro:controller zhaof$ docker search ubuntu
NAME                                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
ubuntu                                                 Ubuntu is a Debian-based Linux operating sys…   8733                [OK]                
dorowu/ubuntu-desktop-lxde-vnc                         Ubuntu with openssh-server and NoVNC            241                                     [OK]
rastasheep/ubuntu-sshd                                 Dockerized SSH service, built on top of offi…   180                                     [OK]
consol/ubuntu-xfce-vnc                                 Ubuntu container with "headless" VNC session…   134                                     [OK]
ansible/ubuntu14.04-ansible                            Ubuntu 14.04 LTS with ansible                   95                                      [OK]
ubuntu-upstart                                         Upstart is an event-based replacement for th…   92                  [OK]                
neurodebian                                            NeuroDebian provides neuroscience research s…   54                  [OK]                
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5   ubuntu-16-nginx-php-phpmyadmin-mysql-5          47                                      [OK]
ubuntu-debootstrap                                     debootstrap --variant=minbase --components=m…   40                  [OK]                
nuagebec/ubuntu                                        Simple always updated Ubuntu docker images w…   23                                      [OK]
tutum/ubuntu                                           Simple Ubuntu docker images with SSH access     18                                      
i386/ubuntu                                            Ubuntu is a Debian-based Linux operating sys…   14                                      
1and1internet/ubuntu-16-apache-php-7.0                 ubuntu-16-apache-php-7.0                        13                                      [OK]
ppc64le/ubuntu                                         Ubuntu is a Debian-based Linux operating sys…   12                                      
eclipse/ubuntu_jdk8                                    Ubuntu, JDK8, Maven 3, git, curl, nmap, mc, …   6                                       [OK]
1and1internet/ubuntu-16-nginx-php-5.6-wordpress-4      ubuntu-16-nginx-php-5.6-wordpress-4             6                                       [OK]
codenvy/ubuntu_jdk8                                    Ubuntu, JDK8, Maven 3, git, curl, nmap, mc, …   5                                       [OK]
darksheer/ubuntu                                       Base Ubuntu Image -- Updated hourly             4                                       [OK]
pivotaldata/ubuntu                                     A quick freshening-up of the base Ubuntu doc…   2                                       
1and1internet/ubuntu-16-sshd                           ubuntu-16-sshd                                  1                                       [OK]
smartentry/ubuntu                                      ubuntu with smartentry                          1                                       [OK]
ossobv/ubuntu                                          Custom ubuntu image from scratch (based on o…   0                                       
paasmule/bosh-tools-ubuntu                             Ubuntu based bosh-cli                           0                                       [OK]
1and1internet/ubuntu-16-healthcheck                    ubuntu-16-healthcheck                           0                                       [OK]
pivotaldata/ubuntu-gpdb-dev                            Ubuntu images for GPDB development              0                                       
feideMacBook-Pro:controller zhaof$

方式二、从官网找,点击 这里 传送。

输入ubuntu搜索


找到后,终端输入下面命令下载

docker pull ubuntu:18.04

二、新建网络类型(设置固定IP用)

查看网络类类型命令:docker network ls,我的结果如下:

feideMacBook-Pro:controller zhaof$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
abdb210e9758        bridge              bridge              local
999763e5505d        dusnoob             bridge              local
34ef7c7f062c        host                host                local
86328740e06e        none                null                local
feideMacBook-Pro:controller zhaof$

其中,dusnoob是我自己新建的,其它是自带的,

bridge:桥接网络

默认情况下启动的Docker容器,都是使用 bridge,Docker安装时创建的桥接网络,每次Docker容器重启时,会按照顺序获取对应的IP地址,这个就导致重启下,Docker的IP地址就变了

none:无指定网络

使用 --network=none ,docker 容器就不会分配局域网的IP

host: 主机网络

使用 --network=host,此时,Docker 容器的网络会附属在主机上,两者是互通的。
例如,在容器中运行一个Web服务,监听8080端口,则主机的8080端口就会自动映射到容器中。

了解了docker自带的网络之后,我们就可以创建自己的网络了;输入命令 

docker network create --subnet=192.168.0.0/16 dusnoob 就可以创建上面列表里dusnoob网络了。

网段 192.168.0.0/16 代表B类地址 主机为16为 表示192.168固定,后面是可用

三、创建并启动一个ubuntu18.04的容器

终端输入下面命令:

docker run -tid --network=dusnoob --ip 192.168.7.1 --dns=8.8.8.8 --privileged=true --name=server71 -v /Users/zhaof/docker/server71/alidata:/alidata -p 7180:80 -p 7122:22 d3949e34634c

命令参数说明:

-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

-i: 以交互模式运行容器,通常与 -t 同时使用;

-d: 后台运行容器,并返回容器ID;

--network: 指定网络,我这里指定我自己创建的网络,如不加刚默认创建bridge网络

--ip: 指定容器的IP(固定,docker重启后也还是这个IP)

--dns: 设置DNS,如果不设置,你会发现用自己创建的网络无法连网

--privileged: 使用该参数,container内的root拥有真正的root权限,否则很多功能不用

--name: 指定容器名称

-v: 给容器挂载存储卷,挂载到容器的某个目录(冒号前是宿主机的地址,后面是容器内ubuntu系统里的地址,没有目录会自动创建)

-p: 指定容器暴露的端口(我这里用7180对应ubuntu的80端口用于网站访问,7122对应22端口用于ssh连接)

最后那串是镜像的 ID


这样,我们的ubuntu容器就跑起来了,然后我们就可以连上这个ubuntu为所欲为啦!下节继续

最新回复 (0)
    • 都市菜鸟网
      2
        立即登录 立即注册 
返回