Docker 基础知识

Docker

Docker 是什么

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

镜像是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。

容器是镜像的运行时实例 - 实际执行时镜像会在内存中变成什么。默认情况下,它完全独立于主机环境运行,仅在配置为访问主机文件和端口的情况下才执行此操作。

Docker和虚拟机比较

架构

docker 基本命令

docker安装

yum install docker

查看docker版本

docker version

查看docker信息

docker info

docker安装成功测试

docker run hello-world

docker采用C/S的模式

Docker镜像:Docker镜像运行后变成容器

Docker Registry: Registry是Docker镜像的中央仓库

查看docker所有镜像

docker images

镜像镜像加速

修改 /etc/docker/daemon.json, 改为需要加速的仓库,建议使用阿里云镜像加速,比如:

{
  "registry-mirrors": ["https://av57nxi9.mirror.aliyuncs.com"]
}

然后重启doker

sudo systemctl daemon-reload
sudo systemctl restart docker

查看容器日志

可以不加 -f

docker logs -f 4871c4b47f83

进入容器内部

docker exec -it redis /bin/bash

退出容器

ctrl+D

nginx

拉取镜像

docker pull nginx

运行nginx

docker run --name some-nginx -d -p 8080:80 nginx

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

--name: 生成的容器名字

-d: 后台运行

-p:映射端口(映射外部端口:容器内端口)

运行docker并修改静态文件目录

docker run -p 8081:80 --name mynginx -v /home/oskyhang/config/nginx/html:/usr/share/nginx/html:ro --privileged=true -d  nginx

--privileged=true : centos7中安全模块selinux把权限禁掉了,加上此命令可以开启访问权限,不然会替换失败

docker run -p 80:80 --name mynginx -v /home/data/nginx/html:/usr/share/nginx/html:ro -v /home/data/nginx/conf/extra/:/etc/nginx/extra -v /home/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/data/nginx/logs:/var/log/nginx --privileged=true -d  nginx

删除image

先rm正在运行或停止的container,然后再remove镜像,否则会出现下面的异常

Error response from daemon: conflict: unable to delete fce289e99eb9 (must be forced) - image is being used by stopped container 0fcb6b830ca2

[[email protected] ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/hello-world latest fce289e99eb9 10 days ago 1.84 kB
docker.io/nginx latest 7042885a156a 13 days ago 109 MB

[[email protected] ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4e83ea93731a hello-world "/hello" 35 seconds ago Exited (0) 35 seconds ago hungry_volhard
0fcb6b830ca2 hello-world "/hello" 17 minutes ago Exited (0) 17 minutes ago thirsty_pasteur

[[email protected] ~]# docker rm 4e83ea93731a
4e83ea93731a
[[email protected] ~]# docker rm 0fcb6b830ca2
0fcb6b830ca2

[[email protected] ~]# docker rmi fce289e99eb9
Untagged: docker.io/hello-world:latest
Untagged: docker.io/[email protected]:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535
Deleted: sha256:fce289e99eb9bca977dae136fbe2a82b6b7d4c372474c9235adc1741675f587e
Deleted: sha256:af0b15c8625bb1938f1d7b17081031f649fd14e6b233688eea3c5483994a66a3

创建mysql镜像

docker create --name mymysql -v /data/mysql-data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root
mymysql:5.6

docker的好处

  1. 节约资源
  2. 镜像打包后,在其他环境运行不会出现异常

原文地址:https://www.cnblogs.com/oskyhg/p/10765653.html

时间: 2024-08-30 11:12:52

Docker 基础知识的相关文章

Docker 基础知识-入门篇

1. Docker简介和KVM区别 1.1 docker的三大理念 构建 运输 运行 ps:有点类似于java代码,一次构建到处运行 1.2 docker结构 相关说明:image: 和虚拟机的镜像类似container: 用镜像创建的实例repository: 类似于yum仓库docker client: 命令行输入的docker命令docker server: 启动的docker进程 1.3 docker和kvm的区别 1.虚拟机需要hypervisor这个中间层来进行支持,上面跑的每一个虚

Docker03 Docker基础知识、Docker实战

1 Docker基础知识 1.1 什么是Docker Docker是一个可以装应用的容器,就像杯子可以装水.书包可以装书一样:docker官网 Docker是Docker公司开发的,并开源到GitHub上; Docker是跨平台的,支持windows.linux.Macos 1.2 Docker思想 1.2.1 集装箱 需要运行的程序放到一个集装箱中 1.2.2 标准化 运输方式 存储方式 API接口 1.2.3 隔离 1.3 Docker解决了什么问题 1.3.1 解决运行环境不一致问题  解

docker 基础知识分享ppt

给团队做的docker基础分享ppt, 见下面的附件. https://files.cnblogs.com/files/harrychinese/docker_intro.pptx 原文地址:https://www.cnblogs.com/harrychinese/p/docker_ppt.html

Docker基础知识(一)

Docker简介: Docker 是一个开源的应用容器引擎,以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机).bare metal.OpenStack 集群和其他的基础应用平台. Docker与传统的虚拟化技术 传统虚拟化技术(VMware.Xen.Kvm)等技术 纯软件的虚拟化是通过对于硬件层的模拟从而实现允许运行多个操作系统: 硬件辅助虚拟化需要硬件层面对于虚拟化的支持,类似Inter-VT等,具

docker学习---docker基础知识

目录 docker的基础 1.安装docker 2.使用镜像 3.镜像迁移|导入和导出 4.docker Hub介绍 5.搭建私有镜像仓库 5.1.docker开源的镜像分发工具--docker Registry 5.2.harbor部署 6.使用容器 7.容器导出和导入 8.数据卷 9.网络访问 10.dockerfile 10.1.基础指令 10.2.控制指令 10.3.引入指令 10.3.执行指令 10.4.配置指令 10.5.特殊用法 docker的基础 1.安装docker yum i

docker基础知识 -- 操作镜像

实验环境 CentOS 7.5 安装并启动docker yum install -y docker systemctl start docker 镜像 安装镜像 docker pull [OPTIONS] NAME[:TAG|@DIGEST] 注:对于Docker镜像来说,如果不显式地指定TAG,则默认会选择 latest标签,即下载仓库中最新版本的镜像. 从Docker Hub的CentOS仓库下载一个最新的CentOS操作系统的镜像. [[email protected] ~]# docke

docker基础知识 -- 操作容器(二)

实验环境 CentOS 7.5 容器 容器是镜像的运行实例.不同的是,镜像是静态的只读文件,而容器带有运行时需要的可写文件层:同时,容器中的应用进程处于运行状态. 进入容器 可使用以下命令进入容器: attach命令 docker container attach [OPTIONS] CONTAINER [root@kvm ~]# docker container attach --help Usage: docker container attach [OPTIONS] CONTAINER A

【补充】docker基础学习

docker 基础知识 之前写了一篇docker未授权访问的文章,现在来补充一下docker基础知识,以便更好的学习docker上的漏洞. docker是一款轻量级的虚拟化的产品,它属于层级化的架构.最底层是LXC和文件系统AUFS,上面是各种镜像,docker实际上是具有依赖关系的多个层组成的,不同的container可能共享底层的资源.docker的核心是基于cgroup和namespace隔离和限制资源. Cgroups是control groups的缩写,是Linux内核提供的一种可以限

快速掌握Docker必备基础知识

快速掌握Docker必备基础知识 Docker是时下热门的容器技术,相信作为一名开发人员,你一定听说过或者使用过,很多人会把Docker理解为一个轻量级虚拟机,但其实Docker与虚拟机(VM)是两种不同的计算机虚拟化技术,也有很多人会觉得,有了虚拟机,那为什么还要使用Docker呢? 带着心里的一点点疑问,让我们一起来学习Docker吧. 没有虚拟化技术的原始年代 我们仔细想想,在没有计算虚拟化技术的“远古”年代,如果我们要部署一个应用程序(Application),一般的步骤是怎么样的? 第