Docker快速搭建PHP环境之四: Docker容器

Centos, Ubuntu, Nginx, MySQL, Redis, Mongodb, Docker, ...
发表回复
头像
IOsetting
论坛管理员
论坛管理员
帖子: 3641
注册: 2006-10-17 1:48

Docker快速搭建PHP环境之四: Docker容器

帖子 IOsetting » 2018-11-28 1:35

Docker容器就是通过docker run命令运行起来的, image的一个实例.

启动相关

代码: 全选

# 用image创建容器, 使用默认的bridge网络, 并启动
$ docker run -d --name eureka -p 8762:8761 scot-eureka
 
# 用image创建容器并启动, 指定固定IP (必须使用自定义network)
$ docker run   -d --name redis2 --net mybridge --ip 192.168.250.2 redis:4.0.11
$ docker run -itd --name java8 --net mybridge --ip 192.168.250.4 java:8 /bin/bash
$ docker run -itd --name eureka --net mybridge --ip 192.168.250.3 scot-eureka:latest /bin/bash

# 使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx
$ docker run --name mynginx -d nginx:latest

# 使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口
$ docker run -p -d nginx:latest

# 使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data
$ docker run -p 80:80 -v /data:/data -d nginx:latest

# 绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。
$ docker run -p 127.0.0.1:80:8080/tcp ubuntu bash

# 使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
$ docker run -it nginx:latest /bin/bash
root@b8573233d675:/# 

# 生产环境中设置了环境变量的启动命令
$ docker run -d \
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v /:/host \
 -e FLUENTD_OUTPUT=elasticsearch \
 -e ELASTICSEARCH_HOST=elasticsearch \
 -e ELASTICSEARCH_PORT=9200 \
 --link=quickstart_elasticsearch_1:elasticsearch \
registry.cn-hangzhou.aliyuncs.com/acs-sample/fluentd-pilot:latest
查看, 启动, 停止和删除

代码: 全选

# 查看容器
$ docker ps
$ docker ps -a
 
# 查看容器日志
$ docker logs -f [CONTAINER NAME]

# 将当前终端加入容器, 不是用-it启动的容器勿进行此操作, 否则无法用 ^P^Q退出
$ docker attach [CONTAINER NAME]

# 进入容器shell, 在容器中交互地执行命令, 用这种方式进入容器shell是比较安全的, 可以通过exit返回主机shell
$ docker exec -it java8 /bin/bash

# 启动/停止容器
$ docker start/stop [CONTAINER NAME]

# 删除容器
$ docker rm [CONTAINER NAME]
网络相关

代码: 全选

# 断开docker与network的连接
$ docker network disconnect bridge-local redis

# 将运行中的docker连接至网络
$ docker network connect bridge-local redis --ip 192.168.252.10

发表回复