docker run -d -p 80:80 nginx run (建立并运行一个容器) -d 放在后台 -p 端口映射 nginx docker镜像的名字
vi /etc/docker/daemon.json { "registry-mirrors": ["https://registry.docker-cn.com"] } systemctl restart docker
一、传统编译安装nginx:html
官网下载Nginx源码包wget tar解压源码包 建立Nginx用户 安装依赖包 编译安装三部曲configure,make,make install 修改nginx配置文件 启动nginx
二、docker容器mysql
docker run -d -p 80:80 nginx
docker search
选镜像的建议:
1,优先考虑官方
2,starts数量多linux
docker pull(push)
镜像加速器:阿里云加速器,daocloud加速器,中科大加速器,Docker 中国官方镜像加速:https://registry.docker-cn.comnginx
docker pull centos:6.8(没有指定版本,默认会下载最新版) docker pull daocloud.io/huangzhichong/alpine-cn:latest
扩展:查询docker镜像全部版本https://hub.docker.com/r/library/sql
一、查看镜像docker
docker images
二、删除镜像json
docker rmi 例子:docker image rm centos:latest
三、导出镜像centos
docker save 例子:docker image save centos > docker-centos7.4.tar.gz
docker save mysql:5.7> mysql-5.7.tar.gz
四、导入镜像bash
docker load 例子:docker load -i docker-centos7.4.tar.gz
docker run -d -p 80:80 nginx:latest run (建立并运行一个容器) -d 放在后台 -p 端口映射 nginx:latest docker镜像的名字和版本 还有不少其余的参数 docker run == docker create + docker start
进入容器的目的:排错,调试网络
进入容器的方法:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...] 例子: docker exec -it 容器id或容器名字 /bin/bash docker attach [OPTIONS] CONTAINER 例子: docker attach 容器id或容器名字 nsenter(安装yum install -y util-linux 弃用)
一、中止容器
docker stop CONTAINER_ID
二、杀死容器
docker kill container_name
三、查看容器列表
docker ps docker ps –a docker ps –a -l
四、删除容器
docker rm
五、批量删除容器
docker rm -f `docker ps -a -q`
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)
若是使用docker-compose命令将是:
docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
docker run -it --name centos6 centos:6.8 /bin/bash -it 分配交互式的终端 --name 指定容器的名字 /bin/sh 覆盖容器的初始命令 --cpus 指定cpu的数量 --memory 限定内存的大小 -h 指定容器的主机名
docker的本质是:在隔离的环境运行的一个进程
因此:docker容器内的第一个进程必须一直处于前台运行的状态(必须夯住),不然这个容器,就会处于退出状态!
默认,状况下,容器使用的ip是172.17.0.0/16网段的,外界的用户只能访问宿主机的10.0.0.0/24网段,
没法访问172.17.0.0/16网段。咱们运行容器的目的:是但愿运行在容器中的服务,可以被外界访问,
这里就涉及到了外网10.0.0.0/24到容器内网172.17.0.0/16网段的转换,因此须要作端口映射
-p hostPort:containerPort -p ip:hostPort:containerPort -p ip::containerPort(随机端口) -p hostPort:containerPort:udp -p 81:80 -p 443:443 能够指定多个-p
docker run -P (随机端口)
1:持久化容器运行过程当中产生的数据文件
2:实现多个容器间的文件共享。
正常状况下,删除容器,容器中全部的文件也会被删除
一、建立一个数据卷
docker volume create
二、查看数据卷列表
docker volume ls
三、删除一个数据卷
docker volume rm
四、查看一个数据卷的属性
docker volume inspect
docker volume create luoahong docker run -d -p 80:80 -v luoahong:/usr/share/nginx/html nginx:latest cd /var/lib/docker/volumes/luoahong/_data/ rm -f * wget https://www.qstack.com.cn/xiaoniaofeifei.zip unzip xiaoniaofeifei.zip docker run -d -p 81:80 -v luoahong:/usr/share/nginx/html nginx:latest docker run -d -p 82:80 -v luoahong:/usr/share/nginx/html nginx:latest
cd /opt mkdir xiaoniao cd xiaoniao/ wget https://www.qstack.com.cn/xiaoniaofeifei.zip unzip xiaoniaofeifei.zip
重点
docker run -d -p 83:80 -v /opt/xiaoniao:/usr/share/nginx/html nginx:latest