1.docker初体验:
(1)安装Nginx步骤:
官网下载Nginx源码包 进行:wget
tar
创建Nginx用户
(2)编译安装
./config...
修改配置文件
启动
(3)启动第一个容器
##配置docker镜像加速
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
重启一下docker:
[root@docker ~]# systemctal restart docker
[root@docker ~]# docker run -d -p 80:80 nginx
解释:
run:(创建并运行一个容器)
-d :放在后台
-p : 端口映射
nginx docker 镜像的名字
=============================================================
2.关于docker的镜像管理:
1)搜索镜像
docker search
选择镜像的建议:
1.优先考虑官方的
2.stars数量多的
2)获取镜像
docker pull(push)
镜像加速器:阿里加速器,daocloud加速器,中科大加速器,Docker 中国官方镜像加速等:
https://registry.docker-cn.com
3)官方pull docker pull centos:6.8(没有指定版本,默认会下载最新版)
私有仓库pull docker pull daocloud.io/huangzhichong/alpine-cn:latest
4)关于镜像的一些命令:
查看镜像列表:
docker images docker image ls
删除镜像
docker rmi 例子:docker image rm centos:latest
导出镜像:
docker save 例子:docker image save centos > docker-centos7.4.tar.gz
导入镜像:
docker load 例子:docker image load -i docker-centos7.4.tar.gz
=============================================================
3.docker的容器管理:
1) docker run -d -p 80:80 nginx:latest
run (创建并运行一个容器)
-d :放在后台
-p : 端口映射
-v :源地址(宿主机):目标地址(容器)
2) nginx docker镜像的名字
docker run -it --name centos6 centos:6.9 /bin/bash
-it 分配交互式的终端
--name 指定容器的名字
/bin/sh 覆盖容器的初始命令
3)启动容器***
docker run image_name
docker run -it image_name CMD
docker run ===docker create + docker start
4)停止容器
docker stop CONTAINER_ID
杀死容器
docker kill container_name
查看容器列表
docker ps
docker ps -a
5) 进入容器(目的,调试,排错)
docker exec (会分配一个新的终端tty) *****
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
docker exec -it 容器id或容器名字 /bin/bash (/bin/sh)
docker attach(使用同一个终端)
docker attach [OPTIONS] CONTAINER
nasenter(安装 yum install -y util-linux 弃用)
注意:临时退出容器:容器回到 宿主机:
同时: ctrl + p , q
6)删除容器
docker rm
批量删除容器
docker rm -f 'docker ps -a -q'
总结:docker容器内的第一个进程(初始命令)务必是一直处于前台运行的状态(必须夯住),否则这个容器,就会处于退出状态。
注意:业务在容器中运行:夯住,启动服务
4.docker容器 的网络访问(端口映射)
docker0:172.17.0.1 jumpserver:172.17.0.2 nginx: 172.17.0.3
指定映射(docker 会自动添加一条iptables规则来实现端口映射)
-p hostPort:containerPort
-P ip:hostPost:containerPort 多个容器都想使用80端口
-p ip::containerPort(随机端口)
-p hostPort:containerPort:udp
-p 81:80 -p 443:443 可以指定多个-p
随机映射
docker run -P (随机端口)
通过iptables来实现的端口映射
随机端口范围:内核参数决定的:32768 ---60999
5. docker的数据卷管理:
/usr/share/nginx/html
-v /opt/XXX:/usr/share/nginx/html
持久化:
数据卷(文件或目录)
-v 卷名:/data
-v src (宿主机的目录):dst(容器的目录)
数据卷容器
--volumes-from (跟某一个已经存在的容器挂载相同的卷)
基于nginx启动一个容器,监听80或者81,访问80,出现nginx
默认欢迎首页,访问81,出现XXX。
-p 80:80 -p 81:81 -v XXX: XXX -v XXX:XXXX
eg: docker run -d -p 80:80 -v /opt/xiaoniao:/usr/share/nginx/html
nginx:latest
基于nginx多端口的多站点。
=================================================================