安装nginx
- 从docker hub上拉取镜像
docker pull nginx:latest
- 托管一些简单的静态内容
docker run --name some-nginx -v $PWD/html:/usr/share/nginx/html:ro -d nginx
-v $PWD/html:/usr/share/nginx/html:将主机中当前目录下的html挂载到容器的/usr/share/nginx/html
- 或者准备自己的配置文件和文件目录
docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx
#dockerhub上有详细自定义配置部署说明
-p 80:80:将容器的80端口映射到主机的80端口
--name mynginx:将容器命名为mynginx
-v $PWD/www:/www:将主机中当前目录下的www挂载到容器的/www
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机中当前目录下的nginx.conf挂载到容器的/etc/nginx/nginx.conf
-v $PWD/logs:/wwwlogs:将主机中当前目录下的logs挂载到容器的/wwwlogs
注意:如果出现以下类似报错
docker: Error response from daemon: OCI runtime create failed: container_linux.go:344: starting container process caused "process_linux.go:424: container init caused \"rootfs_linux.go:58: mounting \\\"/opt/nginx/conf/nginx.conf\\\" to rootfs \\\"/var/lib/docker/overlay2/f72f02d7a8f04291ee3dd0515fd75cbaa8e12904816f5bb84c714da3d43f7cf0/merged\\\" at \\\"/var/lib/docker/overlay2/f72f02d7a8f04291ee3dd0515fd75cbaa8e12904816f5bb84c714da3d43f7cf0/merged/etc/nginx/nginx.conf\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.
是因为没提前创建好挂载目录和配置文件导致conf/nginx.conf 自动创建成目录,删除并创建nginx.conf配置文件即可
ll conf/
rm -r conf/nginx.conf
touch conf/nginx.conf
- 查看运行容器
docker ps
当前正在运行的容器
安装Lamp环境
拉取一个lamp镜像
docker pull fauria/lamp
创建lamp目录&挂载路径
mkdir ~/lamp && cd ~/lamp
mkdir www logs
创建容器
docker run -d -p 80:80 -v /opt/lamp/www:/var/www/html -v /opt/lamp/logs/:/var/log/httpd --name my-lamp-container fauria/lamp
查看是否启动成功
docker ps
STATUS为UP说明启动成功
查看所有容器
docker ps -a
进入一个已经在运行的容器
#其中字符串为容器ID
docker exec -it d27bd3998ad9 /bin/bash
删除容器删除前先停止
docker stop d27b & docker rm d27b
docker批量删除容器、镜像
一条命令实现停用并删除容器
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
删除所有镜像
docker rmi $(docker images -q)
按条件删除容器
docker rm $(docker ps -a | awk '/test\/webapp/ {print $1}')
按条件删除镜像
#没有打标签
docker rmi `docker images -q | awk '/^<none>/ { print $3 }'`
#镜像名包含关键字
docker rmi --force `docker images | grep keywords | awk '{print $3}'`
//其中keywords为关键字
作者新手,本文仅供参考,不对之处,还望斧正
网友评论