docker基础(代码片段)

Henrik-Yao Henrik-Yao     2023-01-24     635

关键词:

一.docker简介

1.存在的问题

在写代码的过程中我们会接触到开发环境,测试环境以及生产环境,若各个环境所需依赖项版本不同,则会造成冲突,而docker完美的解决了这个问题。

2.docker特性

  • docker 是一个开源的应用容器引擎
  • 基于go语言开发
  • docker让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器
  • 容器是完全使用沙箱机制,相互之间不会有任何接口

3.docker架构

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像

二.docker下载

1.docker下载安装

可以参考官网:https://www.docker.com

此处以CentOS安装docker为例

# 1、yum 包更新到最新 
yum update
# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、 安装docker,出现输入的界面都按 y 
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v

2.配置镜像加速器

默认情况下,将来从docker hub(https://hub.docker.com/)上下载docker镜像,太慢。一般都会配置镜像加速器,可以使用以下镜像加速器,阿里云网易云腾讯云需要登录云服务器控制台获取专属镜像加速器

  • USTC:中科大镜像加速器(https://docker.mirrors.ustc.edu.cn)
  • 阿里云
  • 网易云
  • 腾讯云

针对Docker客户端版本大于 1.10.0 的用户

可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

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

  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]

EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

查看镜像加速器配置信息

cat /etc/docker/daemon.json

三.docker命令

1.linux命令补充

创建文件

touch 文件名

echo写文件

echo “想要的内容”> 文件名
将想要的内容覆盖到对应的文件当中去,文件当中之前的内容不复存在
echo “想要的内容”>> 文件名
将想要的内容追加到文件后,对文件之前的内容不修改,只进行增添

cat查看命令

cat 文件名

查看当前路径

pwd

Linux编辑文件退出

:w 保存文件但不退出
:w! 强制保存不退出

:wq 保存文件并退出
:wq! 强制保存文件,退出

:q 不保存文件,退出
:q! 不保存文件,强制退出

2.docker进程相关命令

启动docker服务

systemctl start docker

停止docker服务

systemctl stop docker

重启docker服务

systemctl restart docker

查看docker服务状态

systemctl status docker

设置开机启动docker服务

systemctl enable docker

3.docker镜像相关命令

查看docker镜像

docker images

搜索redis镜像

docker search redis

下载最新版本redis镜像

docker pull redis

根据镜像id删除镜像

docker rmi 7faaec683238

查看所有镜像id

docker images -q

删除所有镜像

docker rmi $(docker images -q)

4.docker容器相关命令

创建容器
-i 持续运行
-t 分配终端
–name 命名
/bin/bash 启动shell
-it == -i + -t
-it:创建容器即进入,退出即关闭容器,即交互式容器
id:创建容器没有进入,后台运行容器,即守护式容器

docker run -i -t --name=c1 centos:7 /bin/bash

退出容器

exit

查看正在运行中的容器

docker ps

查看历史容器

docker ps -a

进入容器
-t分配终端

docker exec -it c2 /bin/bash

关闭容器

docker stop c2

启动容器

docker start c2

删除容器
正在启动中的容器不能被删除

docker rm c1

查看所有容器id

docker ps -aq

删除所有容器

docker rm $(docker ps -aq)

查看容器信息

docker inspect c2

四.docker数据卷

1.数据卷引入

  • docker容器删除后,在容器中的数据也会随之销毁,那么应该如何保存docker容器中的数据?
  • docker容器如何与外部机器直接交换文件?
  • 容器之间应该如何进行数据交换?

2.数据卷定义

  • 数据卷是宿主机中的一个目录或文件

  • 当容器目录和数据卷目录绑定后,对方的修改会立即同步

  • 一个数据卷可以被多个容器同时挂载

  • 一个容器也可以被挂载多个数据卷

3.数据卷作用

  • 容器数据持久化
  • 外部机器和容器间接通信
  • 容器之间数据交换

4.配置数据卷

docker run .. -v 宿主机目录:容器内目录

docker run -it --name=c1 -v /root/data:/root/data_container centos:7

docker run -it --name=c2 \\
-v ~/data2:/root/data2 \\
-v ~/data3:/root/data3 \\
centos:7
  • 宿主机目录即数据卷
  • 目录必须是绝对路径,如果目录不存在会自动创建
  • ~ = /root 此省略只能用于数据卷,不能用于容器
  • \\ 表示换行输入,看起来比较美观

5.配置专用的数据卷容器

创建数据卷

docker run -it --name=c3 -v /volume centos:7

挂载数据卷

docker run -it --name=c1 --volumes-from c3 centos:7
docker run -it --name=c2 --volumes-from c3 centos:7

五.docker安装mysql

拉取最新版镜像

docker pull mysql:latest

创建mysql容器

docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

参数说明

  • -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
  • MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码

通过root和密码123456访问mysql服务

mysql -h localhost -u root -p

docker入门基础(代码片段)

目录一、简介1、docker架构2、docker的概念二、docker的安装和管理1、docker安装2、docker配置阿里云镜像加速3、基础命令一、简介参考https://www.cnblogs.com/linuxk/p/8984242.html1、docker架构Docker使用客户端-服务器(C/S)架构模式,使用远程API来... 查看详情

docker-基础(代码片段)

Docker基础知识:Docker简介:清华大学docker镜像网站:https://mirrors.tuna.tsinghua.edu.cn阿里云docker镜像rpm包下载:https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/Docker:1基于go语言编写的开源pass服务2交付速度快,资源消耗 查看详情

docker基础命令(代码片段)

Docker基础命令Docker基础命令1、查看Docker版本信息2、镜像操作搜索镜像下载镜像查看镜像信息/获取镜像信息添加新标签(打标签)删除镜像将镜像存储到本机上,命名为nginx_latest载入镜像上传镜像3、容器操作查询容... 查看详情

docker基础(代码片段)

 kvm和docker   1、安装dockeryum-yinstalldockersystemctlstartdocker.servicesystemctlenabledocker.servicesystemctlstatusdocker.service#查看docker库大于100M关于mysql的镜像有哪些[[email protected] 查看详情

docker03基础操作(代码片段)

 【Docker 本体操作相关】检查Docker版本:docker-v 检查Docker当前状态:systemctlstatusdocker 停止Docker与开启Dockersystemctlstopdockersystemctlstartdocker 设置Linux开机自启动Dockersystemctlenabledocker【镜像操作Mir 查看详情

docker镜像管理基础(代码片段)

docker镜像管理基础文章目录docker镜像管理基础镜像的概念docker镜像层docker存储驱动AUFSOverlayFSDeviceMapperdockerregistrydocker镜像的制作DockerHubdocker镜像的获取镜像的生成基于容器制作镜像镜像的概念镜像可以理解为应用程序的集装箱&#x... 查看详情

docker镜像管理基础(代码片段)

docker镜像管理基础文章目录docker镜像管理基础镜像的概念docker镜像层docker存储驱动AUFSOverlayFSDeviceMapperdockerregistrydocker镜像的制作DockerHubdocker镜像的获取镜像的生成基于容器制作镜像镜像的概念镜像可以理解为应用程序的集装箱&#x... 查看详情

docker基础命令(代码片段)

Docker常用命令介绍1、docker常用命令命令作用dockersearch查询镜像dockerpull从网上拉取镜像dockercreate创建容器dockerps查看容器进程dockerstart启动容器进程dockerstop终止容器进程dockerlogs查看日志dockerimages查看docker中的镜像dockerrm删除镜像do... 查看详情

docker基础(代码片段)

三、docker安装官方地址:https://docs.docker.com/engine/install/centos/3.1.安装步骤1.卸载旧版本[root@docker~]#yumremovedockerdocker-clientdocker-client-latestdocker-commondocker-latestdocker-latest-logrotatedocker-logro 查看详情

docker基础必会!!!(代码片段)

docker基础必会!!!一.容器技术产生的背景二.docker理论2.1什么是docker?有什么作用?2.2docker的使用场景2.3docker引擎(DockerEngine)2.4docker与虚拟化的区别三.docker的架构(dockerarchitecture)四.docker三大组件 查看详情

docker基础入门总结(代码片段)

一、什么是Docker   官方文档描述:“Dockerisanopenplatformfordeveloping,shipping,andrunningapplications.Dockerenablesyoutoseparateyourapplicationsfromyourinfrastructuresoyoucandeliversoftwarequickly.With 查看详情

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

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

docker基础操作(代码片段)

docker基础操作docker查看命令选项docker搜索镜像dockersearch[镜像名称]拉取docker镜像dockerpull[镜像名]查看存在的镜像dockerimages删除镜像(如果已经用该镜像创建了容器,要先删除容器才能删除镜像)dockerrmi[镜像IMAGE_ID]查看所有容器(... 查看详情

docker基础(代码片段)

文章目录一.docker简介二.docker下载三.docker命令四.docker数据卷五.docker安装mysql一.docker简介1.存在的问题在写代码的过程中我们会接触到开发环境,测试环境以及生产环境,若各个环境所需依赖项版本不同,则会造成冲... 查看详情

docker-基础命令(代码片段)

docker容器,只能启动一个指定的程序,程序结束,容器退出查看命令:docker--help 总得来说,docker的命令为以下几种: 容器生命周期管理— docker[run|start|stop|restart|kill|rm|pause|unpause]容器操作运维— docker[ps|inspect|top|attach|events... 查看详情

docker入门基础篇(代码片段)

查看docker教学视频,请点击《狂神说java》:https://www.bilibili.com/video/BV1og4y1q7M4?p=1记得投币三连呀~~Docker学习Docker概述Docker安装Docker命令镜像命令容器命令操作命令......Docker镜像容器数据卷DockerFileDocker网络原理Idea整合DockerDockerCompose... 查看详情

docker基础用法(代码片段)

docker基础用法文章目录docker基础用法什么是Docker为什么要使用Docker?更高效的利用系统资源更快速的启动时间一致的运行环境持续交付和部署更轻松的迁移更轻松的维护和扩展更快速的交付和部署更高效的虚拟化更轻松的迁... 查看详情

docker学习---docker基础知识(代码片段)

目录docker的基础1、安装docker2、使用镜像3、镜像迁移|导入和导出4、dockerHub介绍5、搭建私有镜像仓库5.1、docker开源的镜像分发工具--dockerRegistry5.2、harbor部署6、使用容器7、容器导出和导入8、数据卷9、网络访问10、dockerfile10.1、基... 查看详情