docker 容器部署

目录

  • docker 介绍

    • 1 容器操作
    • 2 网络和数据卷
    • 3 应用部署
    • 4 备份迁移
    • 5 dockerfile
    • 6 私有仓库

docker 介绍

# 1 docker概念:
	-版本(17.x以上,都是新版本),docker ce 和docker ee
	-轻量级,环境问题(开发一套环境,运维一套环境)
  -镜像和容器:镜像是一系列文件:redis镜像(linux系统+redis软件)  容器:当成操作系统
  -隔离:容器里部署我的项目
  -宿主机:运行docker软件的机器
  -c/s架构:通过resful交互

# 2 镜像操作
	-搜索镜像:docker search 镜像名字
  -下载镜像:docker pull 镜像名字:tag   # 如果不跟,默认下载最新的(******)
  -查看本地镜像:docker images   #(****)
  -删除本地镜像:docker rmi 镜像id/镜像名字
  	docker rmi 4453 778 333 

# 3 容器操作
	-docker ps  # 查看正在运行的容器
  -docker ps -a # 查看所有容器(运行和停止)
  -状态:创建,运行,停止,暂停
  -启动和停止:dokcer stop 容器id/容器名字
  -docker start 容器id/容器名字

1 容器操作

# 1 容器创建
# 创建一个容器,执行的第一条命令是/bin/bash    没有运行
docker create -it --name=mycentos1 centos:7 /bin/bash
# 如果后面跟的命令是一个能夯住的命令,容器在启动的时候,会一直运行,否则,容器一启动就停止
ps -a :
/bin/bash:

-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。

-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
# 2 容器运行
docker start 容器id/容器名字
# 3 创建并运行
docker run -di --name=mypython  python:3.6 # 创建并运行(后台运行)

docker run -idt --name=mypython  python:3.6 # 创建并运行(前台运行,相当于在容器内部)
docker run -it --name=mypython  python:3.6
-在容器内部,  python  -t相当于:/bin/bash

# 5 进入容器内部操作
# 在容器上执行ps -a
docker exec 85768eb78045 ps -a
docker exec -it 85768eb78045 /bin/bash  # 当做进入到容器
# Python容器
docker exec -it 11f702f88de6 python

# 以后,进入容器(相当于)
docker exec -it 11f702f88de6 /bin/bash

# attach:连到第一个进程上
docker attach 11f702f88de6

# ssh连接(容器安装ssh服务)

# 4 容器删除
docker rm 容器id/容器名字

##### 总结:
docker run:创建并运行
docker exec:容器执行命令(通常用来:进入容器) docker exec -it 容器id/容器名字 /bin/bash

# 5 文件拷贝
# 从宿主机copy文件到容器
docker cp 1.txt centos7:/home  # 把当前路径下的1.txt拷贝到容器的/home
# 从容器copy文件到宿主机
docker cp centos7:/home/1.txt 1.txt  # 把容器home路径下的1.txt拷贝到当前路径下

2 网络和数据卷

# 1 目录挂载(数据卷) 把宿主机的目录映射到容器  宿主机test文件夹映射到容器内部
docker run -di --name=mycentos -v /root/test:/home centos:7
# 2 端口映射(网络)
docker run -di --name=myredis -p 6378:6379 redis

# 都可以跟多个

# 查看容器信息

docker inspect 容器名称(容器ID)
docker inspect --format=‘{{.NetworkSettings.IPAddress}}‘ mysql

3 应用部署

# docker中部署服务(redis,mysql,nginx)
# 安装mysql
# 1 拉一个镜像
docker pull mysql:5.7
# 2 运行起容器来
docker run -di --name=mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

4 备份迁移

# 容器保存为镜像
#            容器名字   镜像名字
docker commit centos7 my_image_centos7
# 把镜像打包成一个压缩文件
#把my_image_centos7镜像压缩到centos_my.tar中
docker  save -o centos_my.tar my_image_centos7
# 把压缩文件恢复成镜像
docker load -i centos_my.tar

5 dockerfile

# Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像
# 文件文件名必须叫 Dockerfile

FROM python:3.6
MAINTAINER lqz
RUN pip install django==1.11.9  -i https://pypi.doubanio.com/simple
RUN mkdir /home/lqz

WORKDIR /home

docker build -t=‘django_img‘ .   # 构建出django_img 镜像

6 私有仓库

# 公司自己的镜像,放到私有仓库(公司内部,张三,李四,都可以使用私有仓库的镜像)
# 私有仓库本质就是一个web项目(linux+registry(用其他语言写的一个web服务))

# 1 docker pull registry   拉取registry镜像
# 2 docker run -di --name=registry -p 5000:5000 registry  运行容器
# 3 浏览器访问:http://175.24.103.108:5000/v2/_catalog  返回空
#修改daemon.json

vi /etc/docker/daemon.json

"insecure-registries":["175.24.103.108:5000"]

# 4 重启docker 服务(所有容器都是停止状态)
systemctl restart docker

# 5 启动registry容器
docker start registry

# 6 标记镜像
docker tag django_img 175.24.103.108:5000/django_img

# 7 上传镜像(私有仓库)
docker push 175.24.103.108:5000/django_img

#8  再从浏览器访问http://175.24.103.108:5000/v2/_catalog
能看到刚刚上传的镜像

# 以后只要同时配置了daemon.json,再拉取镜像,优先从私有仓库拉,没有在去国外

原文地址:https://www.cnblogs.com/shaozheng/p/12609727.html

时间: 2024-10-04 22:19:35

docker 容器部署的相关文章

Docker容器部署tomcat出现中文乱码

docker 容器部署tomcat后,日志文件中出现中文乱码,很多问号,中文的文件夹也是问好.先看看容器的locale: [[email protected] ~]# docker exec -it 41de9a0b6045 locale LANG= LC_CTYPE="POSIX" LC_NUMERIC="POSIX" LC_TIME="POSIX" LC_COLLATE="POSIX" LC_MONETARY="

在线培训 | Docker容器部署与管理入门

容器技术凭借其轻量化和快速部署的特性,被越来越多企业开发者赞誉,近两年来发展态势可谓炙手可热. 去年一年,Kubernetes的流行度持续快速上升,我们有理由相信在不远的未来,Kubernetes将成为通用的基础设施标准. 开源的全栈化企业级容器管理平台Rancher,凭借优异的基础设施服务管理能力和强大的容器协调能力,让用户在生产环境中的容器部署.运行与管理工作变得更加简单.加上Rancher创造性的纳管来自不同基础架构的Kubernetes集群的能力,为企业在生产环境落地Docker与Kub

Docker容器部署与管理入门培训,你需要的前期准备都在这里!

容器技术凭借其轻量化和快速部署的特性,被越来越多企业开发者赞誉,近两年来发展态势可谓炙手可热. 去年一年,Kubernetes的流行度持续快速上升,我们有理由相信在不远的未来,Kubernetes将成为通用的基础设施标准. 开源的全栈化企业级容器管理平台Rancher,凭借优异的基础设施服务管理能力和强大的容器协调能力,让用户在生产环境中的容器部署.运行与管理工作变得更加简单.加上Rancher创造性的纳管来自不同基础架构的Kubernetes集群的能力,为企业在生产环境落地Docker与Kub

docker安装步骤及基于docker容器部署web应用LNMP服务器环境

docker的介绍 docker的定义: 1.docker的三个概念:Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器Docker 镜像 - Docker images: Docker 镜像是 Docker 容器运行时的只读模板Docker 仓库 - Docker registeries: Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库(Docker Hub)Docker 容器 - Docker containers:每一个 Docke

基于docker容器部署solr 8.1

文章要点:1.Solr是什么2.Solr目录结构3.基于docker部署solr正文:1.Solr是什么?Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果.2.Solr目录结构?(1)bin:solr的运行脚本(2)contrib:solr的一些扩展jar包,用于增强solr的功能(3)dist:该目录包

Docker 容器部署 Consul 集群

一.docker安装与启动1.1安装docker[[email protected] /]# yum -y install docker-io 1.2更改配置文件[[email protected] /]# vi /etc/sysconfig/dockerother-args列更改为:other_args="--exec-driver=lxc --selinux-enabled" 1.3启动docker服务[[email protected] /]# service docker st

Docker 容器部署Apache静态网站

容器中部署静态网站1.先了解容器端口映射(1). 设置容器的端口映射run [-P] [-p]-P, --publish-all=true | false 默认为false (对容器所有暴露的端口进行映射)docker run -P -i -t centos /bin/bash -p ,--publish=[] (指定容器的端口)containerPort (只指定容器的端口)docker run -p 80 -i -t centos /bin/bashhostPort:containerPor

基于Docker容器部署ELK日志分析系统

部署ELK日志分析系统,比较消耗计算机硬件,如果使用虚拟机进行测试部署,建议分配较多的硬件资源,否则,当elk容器运行后,会使其无法正常运行.我这里将分配给docker主机5G内存,四个CPU. 一.环境准备 我这里使用一台docker主机(如需要部署docker服务,可以参考博文:Docker的安装详细配置),其IP地址为192.168.20.6,在其之上运行elk容器. 二.配置docker主机运行elk容器 [[email protected] ~]# echo "vm.max_map_c

Springboot使用docker容器部署

本文基于ubuntu 16 1.安装openjdk8(略) 2.创建Dockerfile文件 cd ~vi Dockerfile Dockerfile内容 FROM openjdk:8MAINTAINER Lee <[email protected]> WORKDIR /homeVOLUME /home/logsENV java_opts '-XX:+PrintGCDetails -XX:+PrintGCTimeStamps'#ADD package/pinpoint-agent /pinpo