Docker安装与基础使用
一、Docker介绍
Docker介绍
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker是通过内核虚拟化技术(namespaces和cgroups)来提供容器的资源隔离与安全保障。容器是完全使用沙箱机制,相互之间不会有任何接口。基于go语言并遵从Apache2.0协议开源。
Docker组成
- Docker Client:CLI命令
- Docker Server:守护进程
Docker组件
(与虚拟机进行对比)
- Docker Image 镜像:静态概念,把应用、代码和所需应用库(Bins/Libs)运行环境进行封装和打包
- Docker Container 容器:动态概念,从镜像创建的一个实例,容器之间相互隔离,可进行启停、创建和删除操作
- Docker Repository 仓库:存放镜像
Docker特点
- 可管理性:单进程、不建议启动SSH
- 前台运行进程,进程结束时容器停止,Docker只实现进程级别的隔离(虚拟机实现操作系统级别的隔离)
- 基于C/S架构:Server端服务中断则运行于其上的所有容器停止
- 简化配置与快速部署:应用与运行环境进行打包,快速产品交付,可同时进行多个版本测试
- 不可变理论:原来的不改动,重新创建新的,保证环境一致性
- 支持微服务架构:自动化扩容,Docker在京东的应用
二、Docker安装
安装Docker Community Edition (CE)
cd /etc/yum.repos.d/ && wget https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io -y
查看docker版本
docker -v
查看docker命令帮助
docker --help
docker inspect --help
三、Docker基本使用
Docker Server相关命令
查看Docker Server守护进程运行状态
systemctl status docker
systemctl start docker
Docker镜像管理相关命令
显示当前所有镜像
docker images
搜索docker镜像
docker search nginx
docker search centos
拉取/下载docker镜像
docker pull centos
docker pull nginx
以tar格式导出本地docker镜像
docker save -o nginx.tar nginx
导入本地docker镜像
docker load -i nginx.tar
删除docker镜像
docker rmi <IMAGE ID>
四、Docker容器相关命令
Docker容器管理方式
- 通过docker容器的CONTAINER ID
- 通过docker容器的NAMES
Docker容器相关命令
查看所有docker容器及状态
docker ps -a
#只显示运行中的容器
docker ps
启动docker容器,并执行echo命令,最后容器进入停止状态
docker run --name mycentos centos /bin/echo "abc"
#命令格式,注意镜像名称放在所有参数的后面
#docker run [ARG...] IMAGE [COMMAND] [ARG...]
#--rm 表示容器停止后删除
docker run --rm centos /bin/echo "abc"
启动docker容器,分配TTY和打开容器的标准输入
docker run --name mycentos -t -i centos /bin/bash
#然后进入该容器执行命令
ps aux
#显示的是物理机状态(说明docker只实现进程级别的隔离)
cat /proc/cpuinfo
free -h
exit
重新启动指定容器
docker start mycentos
容器执行指定命令
docker exec mycentos ps -aux
docker exec mycentos w
删除容器
docker rm mycentos
#-f 强制删除运行中的容器
docker rm -f mycentos
五、进入指定容器
方法一
#首先安装util-linux工具包,包含nsenter工具
yum install util-linux -y
#获取容器的PID
docker inspect -f {{.State.Pid}} mycentos
#进入命名空间,nsenter --help
nsenter -t <PID> -m -u -i -n -p
ps -ef
#不会直接退出docker,因为nsenter创建了一个线程
exit
对方法一进行优化:编写shell脚本
[root@linux-202 ~]# cat docker_in.sh
#!/bin/bash
#Use Docker name and nsenter tool to attach Docker.
DOCKER_NAME=$1
DOCKER_PID=`docker inspect -f {{.State.Pid}} $DOCKER_NAME`
nsenter -t $DOCKER_PID -m -u -i -n -p
[root@linux-202 ~]# chmod +x docker_in.sh
[root@linux-202 ~]# ./docker_in.sh mycentos
方法二
docker attach mycentos
#会直接退出docker
exit
方法三
docker exec -i -t mycentos /bin/bash
Docker安装与基础使用的更多相关文章
- Docker 安装和基础用法
理解Docker(1):Docker 安装和基础用法 本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 ...
- Docker 安装入门 --基础镜像
安装Docker1.Docker命令安装 yum install docker //安装docker包 service docker start //设置服务启动 chkconfig docker ...
- 理解Docker(1):Docker 安装和基础用法
本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- Docker安装及基础使用
Docker 安装 在 Mac OS X 系统中,首先你要下载安装包安装:Docker Toolbox 安装过程中,可以选择是否安装 Docker Machine,Docker Compose 等,默 ...
- docker安装和基础操作
docker安装 yum install docker 配置镜像下载加速器 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh ...
- 【Mac】Docker安装及基础使用
Docker 安装 在 Mac OS X 系统中,首先你要下载安装包安装:Docker Toolbox 安装过程中,可以选择是否安装 Docker Machine,Docker Compose 等,默 ...
- Docker安装及基础命令
一.docker安装 1.安装docker #关闭防火墙和selinux systemctl stop firewalld.service setenforce 0 #安装依赖包 yum ins ...
- Docker安装及基础知识
一.安装 & 启动 1.安装Docker [root@tokyo ~]# yum install docker 2.启动Docker服务 (1)旧式的 sysv 语法 [root@tokyo ...
- Docker安装和基础命令
每个优秀的人,背后都有一段沉默的时光 前言 学习Docker基础知识 安装 docker常见的有3种安装方式,yum.rpm包.脚本. 我们采用相对简单但对各种环境比较友好的方式:(关防火墙和seli ...
- docker 应用-1(安装以及基础命令)
Docker 安装 还是看官方文档吧TAT https://docs.docker.com/engine/getstarted/step_one/ 理解docker镜像和容器 镜像就是docker容器 ...
随机推荐
- 独立博客与秘密基地,以及对UI设计中拟物态的怀念
小时候的秘密基地 哪个人小的时候不想有一个"秘密基地"呢?后来人长大了,心里还有这个小欲望,想有一块属于自己的空间,可以自由装饰,可以藏喜欢的东西,不受社会道德约束,不受规则铁蹄践 ...
- 【SpringCloud】SpringCloud Alibaba Sentinel实现熔断与限流
SpringCloud Alibaba Sentinel实现熔断与限流 限流与降级 限流 blockHandler 降级 fallback 降级需要运行时出现异常才会触发,而限流一旦触发,你连运行的机 ...
- Quartz.NET - 教程 12: Quartz 的其他特性
译者注: 目录在这 Quartz.NET 3.x 教程 原文在这 Lesson 12: Miscellaneous Features of Quartz 插件 Quartz 提供了一个用于插入附加功能 ...
- CSS布局——左右固定中间填满
小小例子,注意中间的div应该写在最后,留爪. 先上个高清无码图 源码实现 <!DOCTYPE html> <html lang="en" xmlns=" ...
- SearXNG+MCP实现搜索引擎,想怎么搜就怎么搜
一.概述 MCP应用市场,有很多搜索引擎的应用.但是你们会发现,普遍都需要api-key.你必须花钱购买api-key才能实现搜索功能. 问题来了,我就想用免费搜索的,就向百度一样,可不可以? 答案是 ...
- 【docker】4种网络模式
bridge模式 使用--net=bridge指定,Docker的默认设置,这种模式创建出来的docker容器链接到Dcoker网桥上(docker0网桥或者其它自定义的网桥): 1)创建一对虚拟网卡 ...
- IIS的垃圾回收对后台任务及隐形后台任务的影响
IIS的垃圾回收引起的影响 错误排查 现象:在.net core api里创建的BackgroundService定义rabbitmq消费的逻辑,在一段时间运行后经常会出现消费任务中断,在日志里找了很 ...
- Java序列化:为何必须实现Serializable并显式指定serialVersionUID?
结论先行 实现Serializable接口是Java对象序列化的基本前提,没有它JVM会直接拒绝序列化操作. 显式声明serialVersionUID能彻底掌控序列化版本兼容性,避免因类结构微小改动或 ...
- Nacos源码—9.Nacos升级gRPC分析四
大纲 10.gRPC客户端初始化分析 11.gRPC客户端的心跳机制(健康检查) 12.gRPC服务端如何处理客户端的建立连接请求 13.gRPC服务端如何映射各种请求与对应的Handler处理类 1 ...
- C++ STL vector预分配空间——resize和reserve
vector的resize:既分配了空间,也创建了对象,会调用构造函数 vector的reserve:reserve()表示容器预留空间,但不是真正的创建对象,需要通过insert()或push_ba ...