四时宝库

程序员的知识宝库

docker命令详细讲解(二)(docker 命令大全)

四、管理容器常用命令

4.1、删除容器和镜像

#删除所有容器

docker stop $(docker ps -a -q);docker rm $(docker ps -a -q)

#删除所有镜像

[root@ansible-server ~]# docker rmi -f `docker images -q`

4.2、进入容器

法一:

[root@ansible-server ~]# docker exec -it nginx02 bash

root@ea65f58c0e55:/# exit

法二:

[root@ansible-server ~]# docker exec -it nginx02 sh

# ls

bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

法三:

[root@ansible-server ~]# docker run -it centos /bin/bash

4.3、commit :把容器打包成镜像

#下载镜像

[root@ansible-server ~]# docker pull centos

Using default tag: latest

latest: Pulling from library/centos

8ba884070f61: Pull complete

Digest: sha256:b40cee82d6f98a785b6ae35748c958804621dc0f2194759a2b8911744457337d

Status: Downloaded newer image for centos:latest

[root@ansible-server ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

centos latest 9f38484d220f 2 months ago 202MB

#进入镜像

[root@ansible-server ~]# docker run -it centos /bin/bash

#在容器中安装vim

[root@2ffc3f732d99 /]# yum install vim -y

[root@2ffc3f732d99 /]# exit

#查看容器

[root@ansible-server ~]# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

c1e98c693e84 centos "/bin/bash" 49 seconds ago Up 46 seconds dreamy_dirac

#把容器打包成镜像:

[root@ansible-server ~]# docker commit c1e98c693e84 centos-vim

sha256:8377fdf51ec1d46dbb79e96a73e47d72c4be2c4f51ba23969ecea23d0a22b3a8

#查看镜像

[root@ansible-server ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

centos-vim latest 8377fdf51ec1 5 seconds ago 202MB

centos latest 9f38484d220f 2 months ago 202MB

4.4、把文件从电脑中拷贝到容器中

#查看容器

[root@ansible-server ~]# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

c1e98c693e84 centos "/bin/bash" 9 minutes ago Up 9 minutes dreamy_dirac

#查看需要拷贝的文件

[root@ansible-server ~]# ll

total 294828

-rw-r--r--. 1 root root 2656 May 18 16:26 nginx.conf

#拷贝文件到容器中

[root@ansible-server ~]# docker container cp nginx.conf dreamy_dirac:/root

#进入容器查看,是否有拷贝过来的文件

[root@ansible-server ~]# docker container exec dreamy_dirac ls /root

anaconda-ks.cfg

nginx.conf<br><br>#在容器中的文件重启也不会丢失

[root@ansible-server ~]# docker restart dreamy_dirac dreamy_dirac

4.5、查看容器日志

#下载并运行容器

[root@ansible-server ~]# docker container run -itd -p 8080:80 --name nginx02 nginx

Unable to find image 'nginx:latest' locally

latest: Pulling from library/nginx

743f2d6c1f65: Pull complete

6bfc4ec4420a: Pull complete

688a776db95f: Pull complete

Digest: sha256:0e409e180983aea7972c92b0a8ae538d1d3c802fe3a8f795ad8049951894590a

Status: Downloaded newer image for nginx:latest

7d5b76c0f8b20038eac1449daba79ded2da7ec41f448ca02252fda877f2ffa9a

#查看容器

[root@ansible-server ~]# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

7d5b76c0f8b2 nginx "nginx -g 'daemon of…" 29 seconds ago Up 26 seconds 0.0.0.0:8080->80/tcp nginx02

c1e98c693e84 centos "/bin/bash" 20 minutes ago Up 4 minutes dreamy_dirac

#访问容器的nginx

[root@ansible-server ~]# curl 59.47.71.229:8080

<!DOCTYPE html>

<html>

<body>

<h1>Welcome to nginx!</h1>

</body>

</html>

#查看容器日志

[root@ansible-server ~]# docker logs nginx02

59.47.71.229 - - [23/May/2019:08:32:34 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-"

59.47.71.229 - - [23/May/2019:08:32:35 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-"

4.6、查看容器负载情况

[root@ansible-server ~]# docker stats nginx02

CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS

7d5b76c0f8b2 nginx02 0.00% 1.371MiB / 3.693GiB 0.04% 1.83kB / 2.46kB 0B / 0B 2

CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS

7d5b76c0f8b2 nginx02 0.00% 1.371MiB / 3.693GiB 0.04% 1.83kB / 2.46kB 0B / 0B 2

CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS

7d5b76c0f8b2 nginx02 0.00% 1.371MiB / 3.693GiB 0.04% 1.83kB / 2.46kB 0B / 0B 2

CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS

7d5b76c0f8b2 nginx02 0.00% 1.371MiB / 3.693GiB 0.04% 1.83kB / 2.46kB 0B / 0B 2

CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS

7d5b76c0f8b2 nginx02 0.00% 1.371MiB / 3.693GiB 0.04% 1.83kB / 2.46kB 0B / 0B 2

4.7、查看容器的端口

[root@ansible-server ~]# docker port nginx02

80/tcp -> 0.0.0.0:8080

4.8、update

[root@ansible-server ~]# docker update --help

Usage: docker update [OPTIONS] CONTAINER [CONTAINER...]

Update configuration of one or more containers

Options:

--blkio-weight uint16 Block IO (relative weight), between 10 and 1000, or 0

to disable (default 0)

--cpu-period int Limit CPU CFS (Completely Fair Scheduler) period

--cpu-quota int Limit CPU CFS (Completely Fair Scheduler) quota

--cpu-rt-period int Limit the CPU real-time period in microseconds

--cpu-rt-runtime int Limit the CPU real-time runtime in microseconds

-c, --cpu-shares int CPU shares (relative weight)

--cpus decimal Number of CPUs

--cpuset-cpus string CPUs in which to allow execution (0-3, 0,1)

--cpuset-mems string MEMs in which to allow execution (0-3, 0,1)

--kernel-memory bytes Kernel memory limit

-m, --memory bytes Memory limit

--memory-reservation bytes Memory soft limit

--memory-swap bytes Swap limit equal to memory plus swap: '-1' to enable

unlimited swap

--restart string Restart policy to apply when a container exits

示例:

[root@ansible-server ~]# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

7d5b76c0f8b2 nginx "nginx -g 'daemon of…" 22 minutes ago Up 22 minutes 0.0.0.0:8080->80/tcp nginx02

c1e98c693e84 centos "/bin/bash" 42 minutes ago Up 26 minutes dreamy_dirac<br><br>#设置容器重启策略

[root@ansible-server ~]# docker update --restart=always 7d5b76c0f8b2

7d5b76c0f8b2

五、Volume(数据卷)

5.1、将Docker主机数据挂载到容器

1、保证容器中的数据不丢失

2、原来容器中的数据,不能容器挂了,数据就拿不出来了。

挂载数据的三种方式:

1、volumes (常用)

[root@ansible-server ~]# ls /var/lib/docker/volumes/metadata.db

#查看帮助

[root@ansible-server ~]# docker volume --help

Usage: docker volume COMMAND

Manage volumes

Commands:

create Create a volume

inspect Display detailed information on one or more volumes

ls List volumes

prune Remove all unused local volumes

rm Remove one or more volumes

Run 'docker volume COMMAND --help' for more information on a command.


2、bind mounts (常用)

挂载在宿主机上面

3、tmpfs (不常用)

tmpfs是一种基于内存的文件系统,也叫临时文件系统,tmpfs可以使用RAM,也可以使用swap分区存储。它并不是一个块设备,只要安装就可以使用。是基本RAM的文件系统。

5.2、创建挂载卷,并挂载到容器中

#创建卷

[root@ansible-server ~]# docker volume create nginx-vo1

nginx-vo1

#卷存储位置

[root@ansible-server ~]# docker volume ls

DRIVER VOLUME NAME

local nginx-vo1

#查看卷的详细信息

[root@ansible-server ~]# docker volume inspect nginx-vo1

[

{

"CreatedAt": "2019-05-23T17:09:33+08:00",

"Driver": "local",

"Labels": {},

"Mountpoint": "/var/lib/docker/volumes/nginx-vo1/_data",

"Name": "nginx-vo1",

"Options": {},

"Scope": "local"

}

]

#挂载卷

语法:

docker run -itd, nginx的名称,--mount src=挂载的数据卷, dst=nginx网站的根目录

[root@ansible-server ~]# docker run -itd --name=nginx-test --mount src=nginx-vo1,dst=/usr/share/nginx/html nginx

ef9087684fb9ffe8775895215e0bbb13d1a8ad39f5b30c93a171213522df10c5

#查看容器

[root@ansible-server ~]# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

ef9087684fb9 nginx "nginx -g 'daemon of…" 3 minutes ago Up 3 minutes 80/tcp nginx-test

7d5b76c0f8b2 nginx "nginx -g 'daemon of…" 45 minutes ago Exited (0) 22 minutes ago nginx02

c1e98c693e84 centos "/bin/bash" About an hour ago Up About an hour dreamy_dirac

#进入容器

[root@ansible-server ~]# docker exec -it nginx-test bash

root@ef9087684fb9:/#

#进入nginx网站根目录

root@ef9087684fb9:/# cd /usr/share/nginx/html/

#创建一个文件

root@ef9087684fb9:/usr/share/nginx/html# touch 1.html

root@ef9087684fb9:/usr/share/nginx/html# ls

1.html 50x.html index.html

#查看容器外面宿主机目录中是否有这几个文件(备注:再开一个终端)

[root@ansible-server ~]# cd /var/lib/docker/volumes/nginx-vo1/_data/

[root@ansible-server _data]# ls

1.html 50x.html index.html

[root@ansible-server _data]# exit

5.3、演示容器删除了,数据卷的数据还在

(备注:如果在容器中删除了数据,那么本地也会跟着删除)

#创建10个文件

root@ef9087684fb9:/usr/share/nginx/html# touch {1..10}.txt

root@ef9087684fb9:/usr/share/nginx/html# ls

1.txt 10.txt 2.txt 3.txt 4.txt 5.txt 50x.html 6.txt 7.txt 8.txt 9.txt index.html

root@ef9087684fb9:/usr/share/nginx/html# exit

exit

#删除所有容器

[root@ansible-server ~]# docker rm -f $(docker ps -q -a)

ef9087684fb9

7d5b76c0f8b2

c1e98c693e84

#查看容器

[root@ansible-server ~]# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

#查看数据卷

[root@ansible-server _data]# cd /var/lib/docker/volumes/nginx-vo1/_data

[root@ansible-server _data]# ls

10.txt 1.txt 2.txt 3.txt 4.txt 50x.html 5.txt 6.txt 7.txt 8.txt 9.txt index.html

5.4、运行容器,增加端口,再通过本地数据卷中写入一个a.html的文件。再用浏览器访问他看是否可以打开

#再运行容器,增加端口

[root@ansible-server ~]# docker run -itd --name=nginx-test -p 8080:80 --mount src=nginx-vo1,dst=/usr/share/nginx/html nginx

7c82062a7435997717a938a252684ee5832caafe089d97ebf3948010951ae18a

[root@ansible-server ~]# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

7c82062a7435 nginx "nginx -g 'daemon of…" 4 seconds ago Up 2 seconds 0.0.0.0:8080->80/tcp nginx-test

#容器数据卷存储目录

[root@ansible-server _data]# cd /var/lib/docker/volumes/nginx-vo1/_data

[root@ansible-server _data]# ls

10.txt 1.txt 2.txt 3.txt 4.txt 50x.html 5.txt 6.txt 7.txt 8.txt 9.txt index.html

#创建一个html的文件

[root@ansible-server _data]# vi a.html

<h>welcome nulige</n>

#通过浏览器进行访问

http://59.47.71.229:8080/a.html

返回结果:

welcome nulige

5.5、实现数据卷共享他们的数据

#数据卷可以共享他们的数据

[root@ansible-server ~]# docker run -itd --name=nginx-test -p 8080:80 --mount src=nginx-vo1,dst=/usr/share/nginx/html nginx

7c82062a7435997717a938a252684ee5832caafe089d97ebf3948010951ae18a

#本地数据卷目录

[root@ansible-server _data]# cd /var/lib/docker/volumes/nginx-vo1/_data

[root@ansible-server _data]# ls

50x.html index.html

#创建一个文件

[root@ansible-server _data]# vi a.html

<h>welcome nulige</n>

#查看文件

[root@ansible-server _data]# ls

50x.html a.html index.html

#通过再创建一个容器,共享上面这个数据卷。实现了数据共享,多个nginx服务都访问同一个数据卷。这里有点像nginx访问nfs共享文件夹的功能。

[root@ansible-server ~]# docker run -itd --name=nginx-test02 -p 8081:80 --mount src=nginx-vo1,dst=/usr/share/nginx/html nginx

6e984d5e99a43487e616e92d75a9e9c57c4da3a0d7f0833c37f46072c3673970

[root@ansible-server ~]# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

6e984d5e99a4 nginx "nginx -g 'daemon of…" 16 seconds ago Up 14 seconds 0.0.0.0:8081->80/tcp nginx-test02

7c82062a7435 nginx "nginx -g 'daemon of…" 43 minutes ago Up 43 minutes 0.0.0.0:8080->80/tcp nginx-test

5.6、没有指定数据卷,他默认会创建数据库

#没有指定数据卷,他默认会自动创建数据卷

卷分类:

一种是:命名卷,自己指定的卷

一种是:匿名卷,系统默认创建的卷

<br>#创建匿名卷

[root@ansible-server ~]# docker run -itd --name=nginx-test03 -p 8082:80 --mount src=,dst=/usr/share/nginx/html nginx bcbdee85ae6d005971649a802484dacc8b6aca6f96adf70ef4c4ba3dab32bee9 <br>#查看卷

[root@ansible-server ~]# docker volume ls

DRIVER VOLUME NAME

local 92dbb978ec9d767fee49b1cdb440cd45ada36feb42b064132ba152150780fe67 #匿名卷

local nginx-vo1 #命名卷

5.7、通过bind挂载数据卷

示例:

#删除容器

[root@ansible-server ~]# docker rm -f $(docker ps -q -a)

bcbdee85ae6d

6e984d5e99a4

7c82062a7435

#绑定系统中已经存在的卷,src=app,这个目录必须存在,否则会报错

加参数:type=bind

先创建一个文件夹

[root@ansible-server ~]# mkdir -p /app/wwwroot

再绑定到这个文件夹中

[root@ansible-server ~]# docker run -itd --name=nginx-test --mount type=bind,src=/app/wwwroot,dst=/usr/share/nginx/html nginx

02c1bdaab564b3add7bbe0ac9b289e616e4bc40c965ff9824188bb99ed1fccb2

[root@ansible-server ~]# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

02c1bdaab564 nginx "nginx -g 'daemon of…" 5 seconds ago Up 3 seconds 80/tcp nginx-test

#进入容器

[root@ansible-server ~]# docker exec -it nginx-test bash

#查看mount是否挂载到/usr/share/nginx/html目录

root@02c1bdaab564:/# mount

overlay on / type overlay (rw,relatime,seclabel,lowerdir=/var/lib/docker/overlay2/l/3QG6SC3NFVC6UJJQNVQGSHSCJV:/var/lib/docker/overlay2/l/IDJTHZBOQVLBQ7TISUNIWAAKS4:/var/lib/docker/overlay2/l/57TQY5XX7CMEROHBTYSQYNQTFY:/var/lib/docker/overlay2/l/FBBYWNRKKGDXOBECYPD3KFPUZN,upperdir=/var/lib/docker/overlay2/e7815303046019f7b9a48c1b1549bd46d25a5011aded5c61a4ca11620880f91d/diff,workdir=/var/lib/docker/overlay2/e7815303046019f7b9a48c1b1549bd46d25a5011aded5c61a4ca11620880f91d/work)

proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)

tmpfs on /dev type tmpfs (rw,nosuid,seclabel,size=65536k,mode=755)

devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=666)

sysfs on /sys type sysfs (ro,nosuid,nodev,noexec,relatime,seclabel)

tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,relatime,seclabel,mode=755)

cgroup on /sys/fs/cgroup/systemd type cgroup (ro,nosuid,nodev,noexec,relatime,seclabel,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)

cgroup on /sys/fs/cgroup/perf_event type cgroup (ro,nosuid,nodev,noexec,relatime,seclabel,perf_event)

cgroup on /sys/fs/cgroup/blkio type cgroup (ro,nosuid,nodev,noexec,relatime,seclabel,blkio)

cgroup on /sys/fs/cgroup/cpuset type cgroup (ro,nosuid,nodev,noexec,relatime,seclabel,cpuset)

cgroup on /sys/fs/cgroup/memory type cgroup (ro,nosuid,nodev,noexec,relatime,seclabel,memory)

cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (ro,nosuid,nodev,noexec,relatime,seclabel,cpuacct,cpu)

cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (ro,nosuid,nodev,noexec,relatime,seclabel,net_prio,net_cls)

cgroup on /sys/fs/cgroup/devices type cgroup (ro,nosuid,nodev,noexec,relatime,seclabel,devices)

cgroup on /sys/fs/cgroup/pids type cgroup (ro,nosuid,nodev,noexec,relatime,seclabel,pids)

cgroup on /sys/fs/cgroup/freezer type cgroup (ro,nosuid,nodev,noexec,relatime,seclabel,freezer)

cgroup on /sys/fs/cgroup/hugetlb type cgroup (ro,nosuid,nodev,noexec,relatime,seclabel,hugetlb)

mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime,seclabel)

/dev/mapper/centos-root on /etc/resolv.conf type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

/dev/mapper/centos-root on /etc/hostname type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

/dev/mapper/centos-root on /etc/hosts type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,seclabel,size=65536k)

/dev/mapper/centos-root on /usr/share/nginx/html type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

devpts on /dev/console type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=666)

proc on /proc/bus type proc (ro,relatime)

proc on /proc/fs type proc (ro,relatime)

proc on /proc/irq type proc (ro,relatime)

proc on /proc/sys type proc (ro,relatime)

proc on /proc/sysrq-trigger type proc (ro,relatime)

tmpfs on /proc/acpi type tmpfs (ro,relatime,seclabel)

tmpfs on /proc/kcore type tmpfs (rw,nosuid,seclabel,size=65536k,mode=755)

tmpfs on /proc/keys type tmpfs (rw,nosuid,seclabel,size=65536k,mode=755)

tmpfs on /proc/timer_list type tmpfs (rw,nosuid,seclabel,size=65536k,mode=755)

tmpfs on /proc/timer_stats type tmpfs (rw,nosuid,seclabel,size=65536k,mode=755)

tmpfs on /proc/sched_debug type tmpfs (rw,nosuid,seclabel,size=65536k,mode=755)

tmpfs on /proc/scsi type tmpfs (ro,relatime,seclabel)

tmpfs on /sys/firmware type tmpfs (ro,relatime,seclabel)

#备注:通过bind挂载的容器,他会隐藏掉文件夹下面的内容

root@02c1bdaab564:/# cd /usr/share/nginx/html/

root@02c1bdaab564:/usr/share/nginx/html# ls

#再开一个终端

[root@ansible-server _data]# cd /app/wwwroot/

#往里面写入点内容

[root@ansible-server wwwroot]# echo "<h>welcome nulige </h>" >index.html

[root@ansible-server wwwroot]# cat index.html

<h>welcome nulige</h>

#再到容器中查看

[root@ansible-server ~]# docker exec -it nginx-test bash

root@02c1bdaab564:/# cd /usr/share/nginx/html/

root@02c1bdaab564:/usr/share/nginx/html# ls

index.html

root@02c1bdaab564:/usr/share/nginx/html# cat index.html

<h>welcome nulige </h>

#bind的应用场景

1、用在tomcat的部署中,直接生成jar包,挂载到部署目录中。

ls target/xxx.war jar

六、应用案例

6.1、搭建LNMP网站平台实战

一、搭建LNMP网站平台(nginx+php+mysql)

1、创建网络

[root@ansible-server ~]# docker network create lnmp

#查看网络

[root@ansible-server ~]# docker network ls

NETWORK ID NAME DRIVER SCOPE

b892a0991d9d bridge bridge local

f5f547cc8686 host host local

35b5589b014b lnmp bridge local

a480fd78ff5a none null local

2、创建Mysql数据库容器

docker run -itd \

--name lnmp_mysql \

--net lnmp \

-p 3306:3306 \

--mount src=mysql-vol,dst=/var/lib/mysql \

-e MYSQL_ROOT_PASSWORD=123456 \

mysql --character-set-server=utf8

#查看数据卷

[root@ansible-server ~]# docker volume ls

DRIVER VOLUME NAME

local 92dbb978ec9d767fee49b1cdb440cd45ada36feb42b064132ba152150780fe67

local mysql-vol

local nginx-vo1

#数据卷目录存放地址

[root@ansible-server ~]# ls /var/lib/docker/volumes/mysql-vol/_data/

auto.cnf ca-key.pem ib_buffer_pool ibtmp1 performance_schema server-key.pem

binlog.000001 ca.pem ibdata1 #innodb_temp private_key.pem sys

binlog.000002 client-cert.pem ib_logfile0 mysql public_key.pem undo_001

binlog.index client-key.pem ib_logfile1 mysql.ibd server-cert.pem undo_002

#查看lnmp_mysql日志

[root@ansible-server ~]# docker logs lnmp_mysql

#查看top

[root@ansible-server ~]# docker top lnmp_mysql

UID PID PPID C STIME TTY TIME CMD

polkitd 5896 5879 2 11:07 pts/0 00:00:08 mysqld --character-set-server=utf8

3、创建所需数据库

[root@ansible-server ~]# docker exec lnmp_mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -e "create database wordpress"'

#提示密码不安全

mysql: [Warning] Using a password on the command line interface can be insecure.

#查看数据库

[root@ansible-server ~]# docker exec lnmp_mysql sh -c 'exec mysql -uroot -p"123456" -h 59.47.71.229 -e "show databases;"'

mysql: [Warning] Using a password on the command line interface can be insecure.

Database

information_schema

mysql

performance_schema

sys

wordpress

4、创建PHP环境容器(备注:镜像中包括:nginx+php-fpm)

docker run -itd \

--name lnmp_web \

--net lnmp \

-p 88:80 \

--mount type=bind,src=/app/wwwroot,dst=/var/www/html richarvey/nginx-php-fpm

#查看容器

[root@ansible-server wordpress]# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

6de0d790b079 richarvey/nginx-php-fpm "docker-php-entrypoi…" 9 minutes ago Up 9 minutes 443/tcp, 9000/tcp, 0.0.0.0:88->80/tcp lnmp_web

cee253e2ef97 mysql "docker-entrypoint.s…" 12 minutes ago Up 12 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp lnmp_mysql

5、以wordpress博客为例测试

wget https://cn.wordpress.org/wordpress-4.7.4-zh_CN.tar.gz

tar zxf wordpress-4.7.4-zh_CN.tar.gz -C /app/wwwroot

#查看解压文件

[root@ansible-server ~]# ls /app/wwwroot/

index.html wordpress

[root@ansible-server wordpress]# iptables -I INPUT -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT

[root@ansible-server wordpress]# service iptables save

[root@ansible-server wordpress]# service iptables restart

6、浏览器测试访问

http://ip:88/wordpress

#访问后会跳转到

http://ip:88/wordpress/wp-admin/setup-config.php

#填写信息

完成!

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接