docker
Docker 是一个开源的应用容器引擎,但是说白了就是一个Linux上的虚拟机
概念:快速的部署我们的应用程序,比如war包,tomcat
镜像:你安装的操作系统就是镜像,还没有安装的操作系统的包
容器:操作系统被开机启动后就叫容器
Docker的中央仓库:hub.docker.com
配置Docker中国区官方镜像
使用vi修改 /etc/docker/daemon.json 文件并添加上”registry-mirrors”: [“https://registry.docker-cn.com“],如下:
vi /etc/docker/daemon.json
{
“registry-mirrors”: [“https://registry.docker-cn.com“] //框代表可以配多个
}
yum -y install docker 安装
service docker start 启动
service docker restart 重启
chkconfig docker on 开机启动
docker images 查看下载的镜像
docker search 镜像名 搜索镜像
docker rmi 镜像ID 删除镜像(删除前确定该镜像下没有容器)
docker pull 镜像名(docker.io/可以省略) 在服务器上将这个镜像下载
docker run centos 创建一个容器(如果容器里无任务程序,将自动关机)
docker run -it centos /bin/bash 创建一个容器并进入
docker run --name mycentos -it centos 创建一个容器,给它赋予一个名字:mycentos,并进入
docker ps -a 显示所有正在运行或者停止的容器 每个容器都存在一个唯一id
docker inspect 容器ID|容器名字 | grep IP 查看容器的ip地址(首先要检查容器是否启动,不启动是查看不到ip的)
docker start 容器ID|容器名字 启动容器(使用start启动后,容器是不会自动关闭的)
docker stop 容器ID|容器名字 关闭一个容器
docker exec -it 容器ID|容器名字 /bin/bash 进入容器(要先确认容器是在线状态)
docker rm 容器ID|容器名字 删除一个容器
docker rm -f 容器ID|容器名字 强制删除一个容器
docker run -it -v /a:/a centos 创建一个容器并且将主机/a目录共享给容器的/a目录,centos是指定镜像
然后到容器里面查看a目录下的文件,会报下面这个错
ls: cannot open directory .: Permission denied // 没有权限访问
–name:给运行的容器指定一个名称
-t:伪中断,不让操作系统退出
-i:输入流,进入操作系统
-d:表示启动容器直接进入后台模式 daemon 一般如果容器中没有任何程序进程 一般直接退出(-d启动的容器使用exit退出时,容器不会关闭
)
-p:端口映射
docker exec -it -d 56fb29cfcf01 /bin/bash // 进入容器后发现没有任何程序进程,直接退出,在后台运行
如果用yum安装的,也可以拿yum remove卸载,比如:rz
先查看rz的名字:yum search rz
会找到一个lrzsz,这个就是他的名字
然后:yum remove -y lrzsz就可以卸载了
卸载Linux上的nginx
1.nginx -s stop
2.还原nginx的配置
docker安装nginx
1.进入中央仓库搜索nginx
2.进入第一个nginx
docker search nginx // 搜索
docker pull nginx // 下载
端口映射:docker run --name mynginx -v /mynginxs:/usr/share/nginx/html:rw -d -p 8008:80 nginx
// 创建一个名字是mynginx在后台运行并且指定容器的html文件路径与主机的/mynginx路径共享,rw就是赋予nginx对于共享文件的读的写的权限
并且将Linux的8080端口和docker容器的端口共享
仅主机模式:docker run --net host --name mynginx -v /mynginxs:/usr/share/nginx/html:rw -d nginx
docker容器和Linux共享一个网络,包括ip和端口,但是不共享目录
这样访问html里面的文件是,直接以80端口(默认80端口)访问就行了
find / -name 名字: // 全局搜索nginx的目录
docker cp 容器名|容器ID:/etc/nginx/conf.d/default.conf /
// 将指定容器的路径拷贝到主机的/目录下
当有80端口存在时,就表示nginx已启动