安装docker,下载镜像,可以通过docker run来创建并启动容器。
运行docker run 可以带一些参数,常用的有如下几种:
-i 打开交换模式(interactive)
-t 打开登录终端(tty)
-d 后台登录
-p 发布端口,把宿主机端口映射到容器端口上
-v 目录映射(volume),把宿主机目录映射到容器中。
– privileged 开启特权模式
– name 指定容器名称

例如上篇用docker安装lnmp时,启动nginx容器命令:

[root@localhost ~]# docker run --privileged  -it -d --name nginx -p 80:80 \
-v /lnmp/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /lnmp/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /lnmp/nginx/html:/usr/share/nginx/html \
-v /lnmp/nginx/logs:/var/log/nginx nginx:1.18.0

通过 --name 指定容器名称
1、能方便标识容器,
2、方便启动、停用容器
docker start / stop name

[root@localhost ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED      STATUS                        PORTS                                                  NAMES
861af3bccae4   php:5.6-fpm    "docker-php-entrypoi…"   4 days ago   Exited (255) 12 minutes ago   0.0.0.0:9000->9000/tcp, :::9000->9000/tcp              php-fpm
55cc5694695d   mysql:5.7.32   "docker-entrypoint.s…"   4 days ago   Exited (255) 12 minutes ago   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql
d4c36a62dde4   nginx:1.18.0   "/docker-entrypoint.…"   4 days ago   Exited (255) 12 minutes ago   0.0.0.0:80->80/tcp, :::80->80/tcp                      nginx
[root@localhost ~]# docker start nginx
nginx
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED      STATUS        PORTS                               NAMES
d4c36a62dde4   nginx:1.18.0   "/docker-entrypoint.…"   4 days ago   Up 1 second   0.0.0.0:80->80/tcp, :::80->80/tcp   nginx
[root@localhost ~]# 

2、通过-p指定端口
宿主机IP+指定端口直接可以访问容器内服务。

3、通过-v指定宿主机目录映射到容器
1、方便修改容器目录内容或配置
2、实现数据容器外持久化。
比如上面,要修改nginx配置文件,直接修改宿主机上nginx.conf即可
要修改nginx发布的内容,直接修改宿主机上html目录内容即可。

注意:
如果不指定-v这个参数,要修改容器里的内容怎么办?
1、通过docker cp,把容器里面的文件cp到宿主机,在宿主机上修改后,再docker cp进容器。
2、通过docker exec登录进容器里面,这种方式,linux大部份命令不支持,不方便操作。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐