docker-ce部署+部署nginx+无网迁移

  • 一、 docker-ce部署

Docker目前官方主要有两个版本,一个是企业版(docker-ee),一个是社区版(docker-ce),我们这里主要使用的是社区版。

  • 二、 本机部署nginx

  • 1、 拉取镜像:

docker pull nginx
说明:
docker pull nginx 默认下载latest;
docker pull nginx:latest 下载latest版本的nginx
docker images 查看拉取的镜像
docker search nginx 从Docker Hub查找镜像

  • 2、启动镜像

sudo docker run --name nginx-test -p 8081:80 -d nginx
说明:
–name 容器名称
-p 端口映射容器80端口到本机8081端口
-d 后台运行容器,并返回容器ID
nginx 镜像名称

  • 3、在docker中部署nginx

a、创建本机配置文件目录
mkdir -r /home/docker/nginx
mkdir conf conf.d data logs
说明:
data:静态资源,一般前端页面
logs:nginx日志
conf.d:nginx配置,代理、转发、负载、集群
conf:nginx配置,一般配置缓存、限流在这个里面
b、将容器中的配置文件复制本机
docker cp nginx-test:/etc/nginx/nginx.conf /home/docker/nginx /conf
docker cp nginx:/etc/nginx/conf.d /home/docker/nginx/conf.d
c、修改配置后重新部署新容器
docker run --name nginx -d --restart=always --privileged=true --net=host -v /docker/nginx/html:/usr/share/nginx/html -v /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /docker/nginx/logs:/var/log/nginx -v /docker/nginx/conf.d:/etc/nginx/conf.d -d nginx
说明:
–restart=always 当 Docker 重启时,容器自动启动
–privileged=true 容器内的root拥有真正的root权限,否则,container内的root只是外部的一个普通用户权限;privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。
–net=host:容器就和宿主机共用网络,加了–net=host以后就不需要再做端口映射了。比如docker容器内在8080端口起了一个web server,不加的话需要把本机的某个port比如7979和docker内的8080做一个映射关系,访问的时候访问7979,加了net=host则直接访问8080。
-v 将本地目录(文件)挂载到容器指定目录

  • 三、 迁移到正式环境(无网)
  • 1、导入/导出的命令主要有下面几个:export、import、save、load,可以分为2组:

a.save和load(镜像的导出和导入, 导出是复制的过程)
b.export和import(容器的导出和导入,导出是将当前容器 变成一个新的镜像)

  • 2、save和load(镜像的导出和导入)

#输出
docker save -o nginx.tar nginx:latest 或docker save > nginx.tar nginx:latest
#输入
docker load -i nginx.tar或docker load < nginx.tar
说明:
导出时使用-o或者输出重定向>将本地镜像仓库中的镜像输出保存到文件中。
导入时使用-i或者输入重定向<将镜像文件导入到本地镜像仓库。

  • 3、export和import(容器的导出和导入)

#导出
docker export -o nginx-test.tar nginx-test
#导入
docker import nginx-test.tar nginx:imp或cat nginx-test.tar | docker import - nginx:imp
说明:
其中-o表示输出到文件,nginx-test.tar为目标文件,nginx-test是源容器名(name)

  • 4、镜像和容器 导出和导入的区别:

a.export 命令导出的 tar 文件略小于 save 命令导出的
b.export 命令是从容器(container)中导出 tar 文件,而 save 命令则是从镜像(images)中导出
c.export 导出的文件再 import 回去时,无法保留镜像所有历史(即每一层layer信息,不熟悉的可以去看Dockerfile),不能进行回滚操作;而save是依据镜像来的,所以导入时可以完整保留下每一层layer信息。

  • 5、使用场景推荐

a.若是只想备份images,使用save、load即可
b.若是在启动容器后,容器内容有变化,需要备份,则使用export、import

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值