服务器部署docker lnmp环境

一.安装docker
Docker要求运行在Centos 7上,要求系统为64位,系统内核版本3.10以上

1.uname -an 查看当前系统版本

2.yum -y install docker 下载安装docker

3.service docker start  启动docker服务

4.docker version  检查docker是否安装成功

当看到下图的信息,就是表示本机docker已经安装成功,很简单

二.镜像操作
创建容器要以镜像为基础,所以先讲下docker镜像的操作

搜索镜像

docker images ll 查看下本机的是否已经有了镜像

目前机器里还没有镜像,去Docker Hub下载(镜像还可自定义,这里就不细说了)

docker search java  ,还能指定具体的版本进行下载,

例如:docker search  Ubuntu:1.2.5.4,可以进行搜docker Hub 会列出很多镜像

下载镜像

docker pull docker.io/nginx 进行下载

下载到本地的镜像要比docker Hub上搜索出来的要大,因为下载过程中自动解压了,在查看镜像列表就有了刚才下载的镜像

列表包含了仓库名,版本标签,镜像ID,创建时间以及所占用的空间

删除镜像

删除没用的镜像docker rmi镜像id

三.镜像的创建与管理
前边我们已经下载好了Nginx的镜像,接下来我们就创建一个只有Nginx应用的容器docker run -i -t <IMAGE_ID> /bin/bash:-i:标准输入给容器 -t:分配一个虚拟终端 /bin/bash:执行bash脚本,??????

docker run -idt --name container_nginx -p 8080:80  docker.io/nginx
启动一个使用镜像docker.io/nginx,名字container_nginx的容器,-p 8080:80表示将容器的80端口映射到主机的8080端口,这样我们只要访问主机的8080端口就可以访问到容器的服务了。

注意:name前面是两个-, 端口前面有-p, docker.io/nginx是镜像名,8080是主机的端口,80是Nginx应用的端口

主机上的一个端口只能映射一个容器端口,不可以多个容器端口对应一个主机端口(如果容器安装的centos类的系统,那么容器端口随便设定,但如果容器内只是单纯的应用,那么容器端口要是应用自身的端口)

这样我们就创建并启动了一个容器!

exit 退出容器

docker ps 查看运行中的容器

docker ps -a 查看运行中和非运行中的所有容器

docker exec -it container_nginx /bin/bash 进入容器

如果容器还未启动 执行docker start container_nginx
进入容器后启动Nginx

whereis nginx 找Nginx的启动目录

[[email protected] ~]# docker start container_nginx
container_nginx
[[email protected] ~]# docker exec -it container_nginx /bin/bash
[email protected]:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
[email protected]:/# /usr/sbin/nginx

此时在浏览器访问 http://51.110.218.9:8080/ 就可以直接访问容器内的Nginx

如果访问不成功,可能是主机端口的防火墙开着,执行下边的命令关闭

/ sbin / iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
由于我用的阿里云服务器,所以需要在阿里云把8080端口开放

删除容器

容器删除之前先将容器停止

docker stop container_nginx 或者是容器的id

docker rm -f container_nginx 容器删除
docker start 与 docker run 的区别

docker start name 启动一个已经创建的容器

docker run 创建并启动一个容器
docker run 命令其实是 docker create 和 docker start 的命令组合,先执行docker create 创建一个容器 再接着docker start启动

主机和容器文件相互复制

从主机复制到容器 sudo docker cp host_path containerID:container_path

从容器复制到主机 sudo docker cp containerID:container_path host_path
请注意,以上这两个命令都是在主机中执行的,不能再容器中执行

docker cp container_nginx:/usr/local/xin.txt  /usr/local/software/   容器向主机复制文件
docker cp /usr/local/xinzhifu.txt  container_nginx:/usr/local/  主机向容器复制文件

这样一个基础的docker容器就创建完了 。。。。。。。。。。。。

反过来大家再看一看docker的容器与镜像的区别  https://www.cnblogs.com/linjiaxin/p/7381421.html

那么其实镜像与容器的本质区别并不大,那么镜像可以生成容器 ,容器是否可以做成镜像呢?

docket commit container_nginx  image_nginx:v1

容器名 自己起一个镜像的名字:版本号
 用当前的容器生成了redis镜像

例如:A、B两台机器都想安装redis,A机器上创建容器并在容器中做好redis的一切配置,让后将这个容器docker commit 成镜像image_redis,B机器也想要安装redis,直接用镜像image_redis创建容器就行了,docker就是做这样一劳永逸的事情。

而且传统方式得在每台机器上安装配置redis非常麻烦

四.镜像的导入与导出
 
镜像压缩打包 (主机上进行操作),有两种方式 docker save 与 docker load 和 docker export 与 docker import

docker save nginx | gzip > nginx_xin_image.tar.gz  将现有的镜像压缩打包

docker load -i nginx_xin_image.tar.gz 压缩的镜像解压

docker images 进行查看
docker save 是直接将镜像进行打包   docker save <镜像名>或<镜像id>

docker export container_nginx> nginx_image.tar

cat nginx_image.tar | sudo docker import  - nginx_image:import
docker export 是直接将容器进行打包   docker save <容器名>或<容器id>

需要注意两种方法配套的,切不可混用。虽然导入导出时没问题,但是在创建容器时候会报错

如果使用import导入save产生的文件,虽然导入不提示错误,但是启动容器时会提示失败,

会出现类似"docker: Error response from daemon: Container command not found or does not exist"的错误。

类似,使用load载入export产生的文件,也会出现问题。

Linux 安装docker,以及docker的基本操作:https://blog.csdn.net/xinzhifu1/article/details/83579256

原文地址:https://www.cnblogs.com/cxscode/p/11070880.html

时间: 2024-11-15 03:02:34

服务器部署docker lnmp环境的相关文章

Linode服务器部署docker环境

操作系统:centos6.5 64位 环境:1核 1G 最近准备捣腾一下docker,刚好有一台东京节点的linode服务器,所以就那来练练手. 通过yum安装docker yum -y install docker-io 结果就报错了 Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.linode.com * extras: mirrors.linode.com *

服务器部署docker

docker简介 可以把docker是一个容器,可以让开发者将自己的项目部署到这个容器中,最常用的场景是将自己的后端项目部署到服务器的时候会将其打入docker镜像中,可以理解为一个开销更小的虚拟机. docker好处 可以轻易地让几十个服务在docker中跑起来,没有谁敢说能在自己的电脑上跑几十个虚拟机吧, docker可以让开发者更加贴近生产环境,即便于测试,而且同一个镜像可以利用在正式和测试环境节约资源 docker可以将每个应用隔离起来,可以运行多个业务. docker的安全性极具保障.

PHP--腾讯云服务器上部署LNMP环境

本文参考 云服务器上部署Laravel的实例教程 腾讯云 创建 Laravel5.4 项目 阿里云服务器部署php的laravel项目,在阿里云买ECS 搭建 Linux+Nginx+Mysql+PHP环境的 前言 最近在学Laravel,同参考文章,本来只是在虚拟机上运行,但现在正好因为手上有腾讯云的服务器,所以就直接拿来部署Laravel. 首先做下准备工作 sudo apt update 下面不是必要的,但是如果有开着apache2服务器的话,是必须做的 sudo service apac

搭建lnmp环境,部署php动态网站

搭建LNMP 前言:"N"代表Nginx与apache的作用一样,都是为了搭建网站服务器,由俄罗斯人lgor sysoev开发,其特点是占有内存少,并发能力强,单台物理服务器可支持3万-5万个并发请求,中国使用nginx网站用户有:百度.京东.新浪.网易.腾讯.淘宝等. 通过下面的实验搭建LNMP环境,部署天空影城的php动态网站 本实验在虚拟机中运行,使用Redhat6.5系统部署! 一.安装及运行 1.搭建yum仓库,安装支持软件 nginx的配置及运行需要pcre,zlib等软件

lnmp环境自动化部署

lnmp.sh #!/bin/bash#This project to install lnmp#Author:菜逼cd命令玩家#Time:2016.10.13#objective:简化人工手动操作,完成一键部署lnmp环境#email:[email protected]#Blog address:http://www.cnblogs.com/chenjw-note/ #安装必须环境yum install gcc gcc-c++ autoconf libjpeg libjpeg-devel li

用Docker构建LNMP环境(上)

利用docker搭建lnmp环境(上) 小知识: docker镜像运行之后变成容器(docker run) Registry 是Docker镜像的中央存储仓库(pull/push) https://git.oschina.net/                    #从这个地方拉取git的仓库 1.源码克隆到自己的linux服务器上 [[email protected] ~]# git clone https://git.oschina.net/xxsl/docker-training.gi

第20章 使用LNMP架构部署动态网站环境

章节概述: 本章节将从Linux系统的软件安装方式讲起,带领读者分辨RPM软件包与源码安装的区别.并能够理解它们的优缺点. Nginx是一款相当优秀的用于部署动态网站的服务程序,Nginx具有不错的稳定性.丰富的功能以及占用较少的系统资源等独特特性. 通过部署Linux+Nginx+MYSQL+PHP这四种开源软件,便拥有了一个免费.高效.扩展性强.资源消耗低的LNMP动态网站架构了. 本章目录结构 20.1 源码安装程序 20.2 部署LNMP架构 20.2.1 配置Mysql服务 20.2.

docker搭建 LNMP 环境

一.准备镜像安装完docker后,更换完镜像源(docker的安装十分简单自行百度即可)打开/etc/docker目录下的daemon.json添加以下内容 {"registry-mirrors": ["https://o3niohlb.mirror.aliyuncs.com"]} docker工作的基础即是镜像,可以认为镜像是一个独立的由应用组成的虚拟机重启docker服务 service docker restart docker pull nginx:alpi

Centos 7部署docker环境、基本命令使用及简单实战

Docker是一个开源的应用容器引擎,属于Linux容器的一种封装,是目前最流行的Linux容器解决方案.docker可以为任何应用创建一个轻量级.可移植的容器,然后容器可以运行在任何安装有docker的平台上.Docker 的优势:1.更快速的交付和部署对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行.开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码. docker 可以快速创建容器,快速迭代应用程序,大