docker-基础使用:安装,启用,基本命令,数据卷

author author     2023-03-08     749

关键词:

  • 目录:
  • 一、认识Docker
  • 二、Docker架构
  • 三、安装Docker
  • 四、启用Docker
  • 五、Docker的基本命令
  • 六、Docker数据卷
  • 七、Docker命令小结(仅看命令可跳到此处)


一、认识Docker

  • 1、Docker解决依赖兼容问题
    ① 将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包;
    ② 将每个应用放到一个隔离容器去运行,避免互相干扰。
  • 2、Docker解决操作系统环境差异问题
    ① Docker将用户程序与所需要调用的系统(比如Ubuntu)函数库一起打包;
    ② Docker运行到不同操作系统时,直接基于打包的函数库,借助于操作系统的Linux内核来运行。
  • 3、Docker的优势
    ① 可以将程序及其依赖运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统;
    ② 运行时利用沙箱机制形成隔离容器,各个应用互不干扰;
    ③ 启动、移除都可以通过一行命令完成,方便快捷。
  • 4、Docker和虚拟机的区别
    ① Docker是一个系统进程;虚拟机是在操作系统中的操作系统;
    ② Docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般。

二、Docker架构

镜像(Image)容器(Container)是我们较为关注的概念。

  • 1、客户端(Client)
    Docker 客户端通过命令行或者其他工具使用 Docker SDK与 Docker 的守护进程通信。
  • 2、镜像(Image)
    Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
  • 3、容器(Container)
    镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器进程做隔离,对外不可见。
  • 4、主机(Host)
    一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。
  • 5、仓库(Registry)
    仓库用来保存镜像,可以理解为代码控制中的代码仓库。
    Docker Hub是一个官方的Docker镜像的托管平台,提供了庞大的镜像集合供使用。
    国内也有类似于DockerHub 的公开服务,比如网易云镜像服务,阿里云镜像库等。

【Docker-基础使用:安装,启用,基本命令,数据卷】_Docker


三、安装Docker

  • 1、系统要求
    此处官方要求CentOS必须是7/8版本。
    To install Docker Engine, you need a maintained version of CentOS 7 or 8. Archived versions aren’t supported or tested.
  • 2、卸载老版本
    如果安装过老版本的Docker,先卸载,再安装新版本。


$ sudo yum remove docker \\
docker-client \\
docker-client-latest \\
docker-common \\
docker-latest \\
docker-latest-logrotate \\
docker-logrotate \\
docker-engine
  • 3、安装Docker

① 安装yum工具,此处需保持虚拟机联网


yum install -y yum-utils \\
device-mapper-persistent-data \\
lvm2 --skip-broken

② 更新本地镜像源
此处我们设置阿里云为本地镜像源,以保障基础下载速度。


# 设置docker镜像源
yum-config-manager \\
--add-repo \\
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sed -i s/download.docker.com/mirrors.aliyun.com\\/docker-ce/g /etc/yum.repos.d/docker-ce.repo

yum makecache fast

③安装Docker
docker-ce为社区免费版本,ee版本为企业版。


yum install -y docker-ce

至此,我们就已经完成Docker的基础安装了。


四、启用Docker

  • 1、启动Docker

① 关闭防火墙/开放对应端口
Docker应用会用到诸多端口,实际生产环境中推荐按需开启。此处我们直接关闭防火墙。


# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
# 查看防火墙状态
systemctl status firewalld

② 命令启动Docker


systemctl start docker  # 启动docker服务

systemctl stop docker # 停止docker服务

systemctl restart docker # 重启docker服务

③ 查看Docker版本


docker -v
  • 2、配置镜像加速

此处我们配置阿里云的容器镜像服务​​


sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-EOF

"registry-mirrors": ["https://1ifz7405.mirror.aliyuncs.com"]

EOF
sudo systemctl daemon-reload
sudo systemctl restart docker


五、Docker的基本命令

1、镜像操作

① 镜像
在Docker中,镜像名称为:NAME[:TAG|@DIGEST]。其中NAME部分是必须的,也就是镜像名称。[:TAG|@DIGEST]标签或者摘要部分是可选的,如:nginx:1.20。

② 镜像命令 具体可以查阅官方文档​

【Docker-基础使用:安装,启用,基本命令,数据卷】_nginx_02


  • 1.1 拉取、查看镜像

① 去镜像仓库搜索镜像 然后搜索自己所需的镜像,选择Official Image官方镜像即可。

【Docker-基础使用:安装,启用,基本命令,数据卷】_docker_03


② 镜像拉取
直接pull等同于pull latest版本,也就是最新版本。


docker pull nginx
docker pull nginx:latest

当然也可以根据自己实际需求,选择对应的版本。

【Docker-基础使用:安装,启用,基本命令,数据卷】_docker_04


③ 查看镜像


docker images
  • 1.2 保存、删除、导入镜像

① 保存镜像
命令:​​docker save [OPTIONS] IMAGE [IMAGE...]​​,可见[OPTIONS]和[IMAGE...]是可选的。
[OPTIONS] -o,--output Write to a file, instead of STDOUT表示向外输出文件。


# 表示向外输出nginx:latest镜像的nginx.tar文件
docker save -o nginx.tar nginx:latest

② 删除镜像
命令:​​docker image rm [OPTIONS] IMAGE [IMAGE...]​​ 或者docker rmi [OPTIONS] IMAGE [IMAGE...]
此处,我们可以看到Docker为了增加命令可读性也下了一定的功夫。


docker rmi nginx:latest

③ 导入镜像
命令:​​docker image load [OPTIONS]​​ -i,--input Read from tar archive file, instead of STDIN表示从文件读取。


docker load -i nginx.tar

2、容器操作

【Docker-基础使用:安装,启用,基本命令,数据卷】_nginx_05


  • docker run:创建并运行一个容器,处于运行状态
  • docker pause:让一个运行的容器暂停
  • docker unpause:让一个容器从暂停状态恢复运行
  • docker stop:停止一个运行的容器
  • docker start:让一个停止的容器再次运行
  • docker rm:删除一个容器

  • 2.1 创建并运行一个容器

我们可以在​​​​DORKER    HUP中查询到如何创建运行一个容器的相关命令,官方给我们提供了几种使用场景的命令。此处我们以Nginx为例。

【Docker-基础使用:安装,启用,基本命令,数据卷】_nginx_06


① 创建并运行Nginx容器
官方命令:$ docker run --name some-nginx -d -p 8080:80 some-content-nginx,其中some-nginx是给image镜像的命名(唯一即可),some-content-nginx是我们本机对应的nginx镜像。
我们稍加改动,就可以运行自己的Nginx容器了。如下:


docker run --name mn -d -p 80:80 nginx:latest

-d :Run container in background and print container ID 后台运行;
-p :Publish a containers port(s) to the host 将容器端口映射到宿主机端口。
此时我们就可以通过 http://192.168.253.168:80/ 访问到我们的Nginx。
查看日志
docker logs


查看容器状态
docker ps
docker ps -a 查看所有容器,包括已经停止的(不包含已移除的)。


② 创建并运行Redis容器

【Docker-基础使用:安装,启用,基本命令,数据卷】_nginx_07


官方命令:$ docker run --name some-redis -d redis redis-server --save 60 1 --loglevel warning,我们稍加修改,添加-p指令将Redis容器端口映射到主机端口。


$ docker run --name mr -p 6379:6379 -d redis:latest redis-server --save 60 1 --loglevel warning

这样,我们就可以通过Redis客户端连接访问Redis容器。


六、Docker数据卷

  • 1、认识数据卷
    数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。
    一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录。同样我们操作宿主机的目录,就等于操作容器内的目录。

【Docker-基础使用:安装,启用,基本命令,数据卷】_Docker_08


  • 2、数据卷操作命令
    | Command | Description |
    create 创建一个volume
    nspect 显示一个或多个volume的信息
    ls 列出所有的volume
    prune 删除未使用的volume
    rm 删除一个或多个指定的volume
  • 2.1 创建和查看数据卷

① 创建数据卷
命令:​​docker volume create [OPTIONS] [VOLUME]​


docker volume create html

② 查看所有数据卷
命令:​​docker volume ls [OPTIONS]​


docker volume ls

③ 查看数据卷详细信息
命令:​​docker volume inspect [OPTIONS] VOLUME [VOLUME...]​


docker volume inspect html

输出信息如下:


[

"CreatedAt": "2020-04-19T11:00:21Z",
"Driver": "local",
"Labels": ,
"Mountpoint": "/var/lib/docker/volumes/html/_data",
"Name": "myvolume",
"Options": ,
"Scope": "local"

]

可以看到,我们创建的html这个数据卷关联的宿主机目录为​​/var/lib/docker/volumes/html/_data​​目录。

  • 2.2 挂载数据卷

① 带数据卷模式挂载
指令:​​-v, --volume=[host-src:]container-dest[:<options>]: Bind mount a volume.​​,如下我们就是把html数据卷挂载到Nginx容器内的/usr/share/nginx/html目录中。


docker run \\
--name mn \\
-v html:/usr/share/nginx/html \\
-p 80:80 \\
-d \\
nginx:latest

这样我们修改​​/var/lib/docker/volumes/html/_data​​目录中的文件,容器中对应的文件也会产生变化。
② 直接挂载

  • -v [宿主机目录]:[容器内目录]
  • -v [宿主机文件]:[容器内文件]


docker run \\
--name mysql \\
-e MYSQL_ROOT_PASSWORD=root \\
-p 3306:3306 \\
-v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \\
-v /tmp/mysql/data:/var/lib/mysql \\
-d \\
mysql:5.7.25

七、Docker命令小结(仅看命令可跳到此处)

① docker相关
启动docker服务​​​systemctl start docker​​​

停止docker服务​​systemctl stop docker​​​

重启docker服务​​​systemctl restart docker​​​

查看docker版本​​​docker -v​

② 镜像相关
镜像拉取:​​​docker pull nginx​​​,​​docker pull nginx:latest​​​

查看镜像:​​​docker images​​​

保存镜像:​​​docker save -o nginx.tar nginx:latest​​​

删除镜像:​​​docker rmi nginx:latest​​​

导入镜像:​​​docker load -i nginx.tar​

③ 容器相关
创建并运行容器:​​​docker run --name mn -d -p 80:80 nginx:latest​​​

让运行容器暂停:​​​docker pause mn​​​

让容器从暂停状态恢复运行:​​​docker unpause mn​​​

停止运行的容器:​​​docker stop mn​​​

让停止的容器再次运行:​​​docker start mn​​​

删除一个容器:​​​docker rm mn​​​

查看日志:​​docker logs​​​

查看容器状态:​​​docker ps​​​,​​docker ps -a​

④ 数据卷相关

创建数据卷:​​​docker volume create html​

​​ 查看所有数据卷:​​​docker volume ls​​​

查看数据卷详细信息:​​​docker volume inspect html​​​

挂载数据卷:​​​-v html:/usr/share/nginx/html​​​,​​-v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf​


八、结尾

以上即为Docker基础的内容



docker学习--基础命令

...http://www.cnblogs.com/lighten/p/6875355.html1.基本命令  搭建好docker环境之后,使用dockerhelp命令查看docker的基本用法:dockerCOMMAND.        目前我们较为常使用的是commands下面的指令,如果使用swarm相关功能会用到managementcommands... 查看详情

docker基础命令学习(代码片段)

Docker学习Docker简介虚拟机和Linux容器Docker中基本概念镜像(Image)容器(Container)仓库(Repository)分层存储Docker的安装Centos6安装DockerCentos7安装Docker配置阿里云镜像加速器配置HelloWorld镜像底层运行原理Docker常用命令帮助命令dockerversion---查... 查看详情

微服务容器架构工程师

第一部分Docker与Kubernetes基础第1章Docker容器41.0什么是Docker?41.2Docker发行版本51.3Docker基本实现原理51.4Docker优势与局限性81.5容器与虚拟机区别91.6Dokcer架构与术语91.7Docker基本安装101.8DockerC/S模式131.9Docker应用程序运行条件15第2章Docke... 查看详情

三天入门docker-第一天:docker基本介绍与使用(代码片段)

Docker基本介绍与使用前言一、Docker介绍1.Docker架构2.Docker三大核心1)镜像2)容器3)仓库二、Docker安装1.下载Docker软件包2.Docker基础命令介绍1)镜像相关命令2)容器相关命令3.使用Docker实现Nginx网站前言我们这里... 查看详情

docker基础命令使用(代码片段)

Docker基础命令本文主要基于上一片篇docker安装,来演示命令使用方法,docker安装。1、DockerHub搜索镜像dockersearch关键字选项:--automated=false:仅显示自动创建的镜像(通过Github或BitBucket仓库自动构建的镜像,直接从仓库复制一份,... 查看详情

docker的安装与基本使用

安装dockercurl-shttps://get.docker.com|sh 好慢....一个小时吧...启动docker先执行命令dockerversion来来一下:dockerversion  发现没有启动dockerserver,执行命令:servicedockerstart 然后再查看一下dockerversion dockerpull命 查看详情

docker应用-1(安装以及基础命令)

Docker安装还是看官方文档吧TAThttps://docs.docker.com/engine/getstarted/step_one/理解docker镜像和容器镜像就是docker容器在运行的时候所使用的文件系统以及系统内核,以及其他参数。当然,docker镜像一般都会比实际的操作系统+软件要轻便... 查看详情

docker的安装及基本命令

docket的安装及基本命令下载各个版本Docker地址:https://download.docker.com/linux/static/stable/x86_64/docker概述docker是在liunx容器里运行应用的开源工具,是一种轻量级的“虚拟机”。docker的logo设计为蓝色鲸鱼,鲸鱼可以看作为宿主机,而... 查看详情

docker基础入门安装以及常见命令(代码片段)

1、docker常见命令以及安装知识详解1、docker安装1、安装版本统一:Dockerversion18.03.0-ce,build0520e242、安装方式:使用dockerrepository安装3、sudoapt-getupdate4、InstallpackagestoallowapttousearepositoryoverHTTPSsudoapt-getinstallapt-trans 查看详情

docker——使用docker工具管理软件/组件的运行,镜像容器数据卷的基本概念,常用指令,使用docker搭建java微服务运行环境(代码片段)

Docker——使用docker工具管理软件/组件的运行,镜像、容器、数据卷的基本概念,常用指令,使用docker搭建Java微服务运行环境一、docker的安装和卸载1.卸载2.安装3.导入已有的镜像文件二、docker概念1.镜像和容器2.镜像和... 查看详情

在群晖dsm6.0上怎么用docker使用finalspeed加速

将Docker安装到CentOS或Fedora上要将Docker安装到CentOS上,首先启用EPEL软件库,然后使用yum命令:$sudoyuminstalldocker-io$sudoservicedockerstart$sudochkconfigdockeron要将Docker安装到Fedora上,使用下面这些命令:$sudoyuminstalldocker-io$sudosystemctlstartdocker.... 查看详情

docker的基本使用

Docker容器的基本使用在之前的文章中,我们已经讲解了Docker的基本概念以及如何在各个平台下进行Docker的安装。在接下来,我们将继续讲解Docker容器的基本使用。查看Docker服务是否正常执行如下命令后,我们可以看到Docker的一些... 查看详情

kaldi语音识别基础教程(代码片段)

...一个研究和使用的平台。Kaldi环境搭建本文主要通过使用Docker和Nvidia-docker构建Ubuntu环境对Kaldi进行搭建。Docker针对的是无GPU的环境,Nvidia-docker针对的是需要使用GPU计算的环境,如果读者机器上存在GPU计算资源,请使用Nvidia-docker... 查看详情

docker基础知识和命令使用入门(代码片段)

本文介绍了Docker相关的基础知识和命令的简单使用。基础知识部分包括Docker的用途和意义,Docker的镜像、容器、仓库、Dockerfile和DockerCompose的理解,以及Docker图形管理工具Portainer的基础功能。Docker命令的使用包括镜像使用、容器... 查看详情

2docker基础安装和基础使用(代码片段)

基础环境本次环境使用Centos7.x版本系统,最小化安装,系统基础优化配置请查看Centos7.x系统基础优化安装使用命令:yuminstalldocker-io-y[[email protected]~]#yuminstalldocker-io-yLoadedplugins:fastestmirrorLoadingmirrorspeedsfromcachedhostfile*base 查看详情

docker基本命令与使用——docker容器的网络连接

一.Docker容器的网络基础通过ifconfig查看docker0的网络设备,docker守护进程就是通过docker0为docker的容器提供网络连接的各种服务。docker0是Linux虚拟网桥。Linux虚拟网桥的特点:可以设置IP地址相当于拥有一个隐藏的虚拟网卡docker0的地... 查看详情

docker基础命令详解——镜像及容器操作(代码片段)

Docker基础命令详解——镜像及容器操作前言?上篇文章介绍了有关Docker的基础与Linux下docker的安装,本文主要讲解安装docker后的基础使用方法以及命令的介绍,主要是docker镜像操作及容器操作命令。?当然,docker的相关命令非常多... 查看详情

docker使用常用基础命令详解版(代码片段)

文章目录Docker基本命令1.查看docker信息(version、info)2.对image的操作(search、pull、images、rmi、history)3.启动容器(run)4.查看容器(ps)5.保存对容器的修改(commit)6.对容器的操作 查看详情