Docker 快速入门

news2024/9/22 15:29:11

1、Docker 简介

Docker是一个开源的容器引擎,它可以帮助我们更快地交付应用。Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用Docker,可更快地打包、测试以及部署应用程序,并可减少从编写到部署运行代码的周期。

 Docker 官方网站https://www.docker.com/

docker 三要素:

  1. Docker 镜像(Images):Docker镜像是一个只读模板,它包含创建Docker容器的说明。它和系统安装光盘有点像——我们使用系统安装光盘安装系统,同理,我们使用Docker镜像运行Docker镜像中的程序。
  2. 容器(Container):容器是镜像的可运行实例。镜像和容器的关系有点类似于面向对象中,类和对象的关系。我们可通过Docker API或者CLI命令来启停、移动、删除容器。
  3. 仓库(Registry)Docker Registry是一个集中存储与分发镜像的服务。我们构建完Docker镜像后,就可在当前宿主机上运行。但如果想要在其他机器上运行这个镜像,我们就需要手动拷贝。此时,我们可借助Docker Registry来避免镜像的手动拷贝。

    一个Docker Registry可包含多个Docker仓库;每个仓库可包含多个镜像标签;每个标签对应一个Docker镜像。这跟Maven的仓库有点类似,如果把Docker Registry比作Maven仓库的话,那么Docker仓库就可理解为某jar包的路径,而镜像标签则可理解为jar包的版本号。

2、Docker 安装与启动

环境:Linux 操作系统,版本是CentOS7 64位 Docker是CE版本(免费版)

Docker 下载链接:链接失效请私信

链接:https://pan.baidu.com/s/1VTxUIz9XDcn3dD6spZEL1A?pwd=qns1
提取码:qns1

将该 rpm 利用 Xftp 上传至 Linux

 

 切换 root 用户获取权限,然后进行安装即可。

su root
yum install -y docker-ce-18.06.0.ce-3.el7.x86_64.rpm

安装完成,最后会出现 Complete !

3、启动与停止 Docker

systemctl start docker
systemctl status docker
systemctl stop docker
systemctl restart docker

查询是否安装成功:会出现Docker相关的详情信息。安装完毕

docker info
[root@localhost file]# docker info
Containers: 6
 Running: 2
 Paused: 0
 Stopped: 4
Images: 2
Server Version: 18.06.0-ce
Storage Driver: overlay2
 Backing Filesystem: xfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: d64c661f1d51c48782c9cec8fda7604785f93587
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-957.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 972.6MiB
Name: localhost.localdomain
ID: 33PU:JWNT:UBRS:CLMG:FEHQ:AGAL:APF6:3A3V:64SW:IEIM:XGAR:OOXP
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Registry Mirrors:
 https://4iydscvo.mirror.aliyuncs.com/
Live Restore Enabled: false

 4、配置镜像加速器

阿里云镜像加速https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

 

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://4iydscvo.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

最后docker info 查看是否配置成功,下图表示成功。

 5、Docker 镜像操作常用指令

(1)搜索指令  docker search ...

docker search tomcat

 (2)下载镜像 docker pull 镜像名称

docker pull tomcat

 下载完成。

 (3)查看本地镜像

docker images

 (4)删除镜像,可以通过镜像IMAGE ID删除,也可以镜像名:版本号

docker rmi fb5657adc892

[root@localhost root123]# docker rmi c20987f18b13
Untagged: mysql:5.7
Untagged: mysql@sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
Deleted: sha256:c20987f18b130f9d144c9828df630417e2a9523148930dc3963e9d0dab302a76
Deleted: sha256:6567396b065ee734fb2dbb80c8923324a778426dfd01969f091f1ab2d52c7989
Deleted: sha256:0910f12649d514b471f1583a16f672ab67e3d29d9833a15dc2df50dd5536e40f
Deleted: sha256:6682af2fb40555c448b84711c7302d0f86fc716bbe9c7dc7dbd739ef9d757150
Deleted: sha256:5c062c3ac20f576d24454e74781511a5f96739f289edaadf2de934d06e910b92
Deleted: sha256:8805862fcb6ef9deb32d4218e9e6377f35fb351a8be7abafdf1da358b2b287ba
Deleted: sha256:872d2f24c4c64a6795e86958fde075a273c35c82815f0a5025cce41edfef50c7
Deleted: sha256:6fdb3143b79e1be7181d32748dd9d4a845056dfe16ee4c827410e0edef5ad3da
Deleted: sha256:b0527c827c82a8f8f37f706fcb86c420819bb7d707a8de7b664b9ca491c96838
Deleted: sha256:75147f61f29796d6528486d8b1f9fb5d122709ea35620f8ffcea0e0ad2ab0cd0
Deleted: sha256:2938c71ddf01643685879bf182b626f0a53b1356138ef73c40496182e84548aa
Deleted: sha256:ad6b69b549193f81b039a1d478bc896f6e460c77c1849a4374ab95f9a3d2cea2

 (5)保存镜像为文件,首先下载一个java

docker pull java
docker save -o /home/file/jdk.tar java:latest

 (6)将保存的镜像备份文件恢复镜像

先进行docker rmi 删除,在进行恢复。

 docker rmi d23bdf5b1b1b
docker load -i/home/file/jdk.tar

 查看镜像又恢复了。

docker images

 6、Docker 容器常用操作指令

先pull一个镜像

 docker pull java:8

(1)使用镜像创建一个容器

docker run java:8 /bin/echo 'caojun'

 (2)列出容器

docker ps列出当前正在运行的容器
docker ps -a列出当前全部容器
docker ps -a -q列出当前容器的所有编号

(3)停止容器

 一下是两种停止容器的方法。

 (4)启动容器    docker start 容器名称或容器编号

docker start 6cef8b21cada

(5)强制停止容器   docker kill 容器名称或容器编号

[root@localhost file]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                NAMES
2954933039e6        mysql:5.7           "docker-entrypoint.s…"   11 minutes ago      Up 11 minutes       33060/tcp, 0.0.0.0:33306->3306/tcp   offcn_mysql
c2439c591c66        java:8              "/bin/bash"              21 minutes ago      Up 21 minutes                                            jdk1
[root@localhost file]# docker kill 2954933039e6
2954933039e6
[root@localhost file]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
c2439c591c66        java:8              "/bin/bash"         22 minutes ago      Up 22 minutes                           jdk1
[root@localhost file]# 

(6)重启容器        docker restart 容器名称或者容器编号

[root@localhost file]# docker restart 2954933039e6
2954933039e6
[root@localhost file]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                NAMES
2954933039e6        mysql:5.7           "docker-entrypoint.s…"   13 minutes ago      Up 6 seconds        33060/tcp, 0.0.0.0:33306->3306/tcp   offcn_mysql
c2439c591c66        java:8              "/bin/bash"              23 minutes ago      Up 23 minutes                                            jdk1
[root@localhost file]# 

(7)进入容器    docker exec -it heuristic_meninsky /bin/bash

[root@localhost file]# docker exec -it c2439c591c66 /bin/bash
root@c2439c591c66:/# java -version
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-8u111-b14-2~bpo8+1-b14)
OpenJDK 64-Bit Server VM (build 25.111-b14, mixed mode)
root@c2439c591c66:/# 
[root@localhost file]# docker exec -it 2954933039e6 /bin/bash
root@2954933039e6:/# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

(8)删除容器 

docker rm 容器名称或者编号 //注意 不能删除正在运行中容器, 需要停掉才可以删除

docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
c2439c591c66        java:8              "/bin/bash"         37 minutes ago      Up 37 minutes                           jdk1
[root@localhost root123]# docker rm c2439c591c66
Error response from daemon: You cannot remove a running container c2439c591c66982f5a55e97a7bc1cd67a5ffed5090e94eef41c59fb6833518e8. Stop the container before attempting removal or force remove
[root@localhost root123]# docker stop c2439c591c66
c2439c591c66
[root@localhost root123]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@localhost root123]# docker rm c2439c591c66
c2439c591c66
[root@localhost root123]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

7、案例

(1)拉取java镜像

 docker pull java:8

创建容器

docker run -di --name  jdk1  java:8

进入容器

docker exec -it jdk1 /bin/bash

验证版本

java -version

 退出

exit
[root@localhost file]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
java                8                   d23bdf5b1b1b        6 years ago         643MB
[root@localhost file]# docker run -di --name  jdk1  java:8
c2439c591c66982f5a55e97a7bc1cd67a5ffed5090e94eef41c59fb6833518e8
[root@localhost file]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
java                8                   d23bdf5b1b1b        6 years ago         643MB
[root@localhost file]# docker exec -it jdk1 /bin/bash
root@c2439c591c66:/# java -version
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-8u111-b14-2~bpo8+1-b14)
OpenJDK 64-Bit Server VM (build 25.111-b14, mixed mode)
root@c2439c591c66:/# 

(2)拉取mysql镜像

docker pull mysql:5.7

创建 mysql 容器(这里是最简单的方法进行创建)

docker run -d --name=offcn_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=scwdb  mysql:5.7 

[root@localhost file]# docker run -d --name=offcn_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=scwdb  mysql:5.7 
2954933039e63cbf0a00e2f808b5cf805565dbfa4c7e92c92180be76a995b8e6
[root@localhost file]# docker exec -it offcn_mysql /bin/bash
root@2954933039e6:/# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> 

var code = "134c199f-0b00-47b4-b048-4e51ec776c0d"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/456404.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql主从复制搭建--待实践完善

一、什么是mysql主从复制 参考链接&#xff1a;MySQL主从介绍_rain_yunlx的博客-CSDN博客 Linux下搭建Mysql主从复制详细步骤&#xff08;Mysql版本5.7.35&#xff09;_linuxmysql主从_Direct_的博客-CSDN博客 Linux环境MySQL数据库主从复制保姆级教程_linux主从复制_小学生…

山东大学2023操作系统实验2

目录 (1)操作系统实验2内容: (2)完成方式: (3)使用函数和功能: 1.pipe函数与有关的功能 2.pipe的返回值 3.pipe的参数 4.使用事项: (4)实现代码 (5)实现效果 (1)操作系统实验2内容: 创建三个并行的进程,分别完成计算F(x),F(y),F(x,y)三个函数的计算 (2)完成方式: 实验…

再也不去字节跳动面试了,6年测开经验的真实面试经历.....

前几天我朋友跟我吐苦水&#xff0c;这波面试又把他打击到了&#xff0c;做了快6年软件测试员。。。为了进大厂&#xff0c;也花了很多时间和精力在面试准备上&#xff0c;也刷了很多题。但题刷多了之后有点怀疑人生&#xff0c;不知道刷的这些题在之后的工作中能不能用到&…

18.Java异常

Java异常 Java 中的异常&#xff08;Exception&#xff09;又称为例外&#xff0c;是一个在程序执行期间发生的事件&#xff0c;它中断正在执行程序的正常指令流。为了能够及时有效地处理程序中的运行错误&#xff0c;Java中引入了异常类的概念。异常类的引入即明确了程序在执…

QT stackUnder 用法小结

stackUnder是什么意思&#xff1f;根据官方的解析&#xff0c;简而言之一句话&#xff1a;把窗口的小部件放置于父窗口的堆栈窗口中。本文将通过一则简单的示例&#xff0c;来具体解析stackUnder该如何使用。 官方解析 void QWidget::stackUnder(QWidget *w) Places the widg…

ThinkPHP6之数据库操作上

ThinkPHP6之数据库操作上 前言1. 数据库配置2. 数据库操作1. 查询操作2. 插入操作3. 修改4. 删除5. 其他 3.数据集总结 前言 注意&#xff0c;tp6在进行语法学习的时候都是在app/index.php中写代码的&#xff0c;代码写在index函数下面&#xff0c;而且tp6自带的文件都是由自动…

经常打电话的人用什么耳机好?通话质量好的蓝牙耳机推荐

用蓝牙耳机听歌、刷视频、玩游戏已经成为趋势&#xff0c;作为人手必备的一件单品&#xff0c;在款式层出不穷&#xff0c;功能各异的蓝牙耳机市场&#xff0c;许多人都不知道究竟什么蓝牙耳机好&#xff1f;下面整理了几款通话质量好的蓝牙耳机。 一、南卡小音舱Lite2蓝牙耳机…

【服务器数据恢复】Raid磁盘阵列常见故障类型原因分析

由于raid的特点和优势&#xff0c;磁盘阵列技术被广泛应用于服务器和存储等商用领域。由于用户基数大&#xff0c;出现故障的情况也不少。通过这篇文章介绍一下常见的raid磁盘阵列数故障类型和原因。 故障类型一、磁盘阵列处于降级状态时未及时rebuild。 RAID磁盘阵列的数据安全…

Linux+云服务器

目录 前言 一、Linux介绍 二、Linux 环境搭建 2.1 云服务器 2.2 XShell 终端 三、Linux 常用命令 3.1操作目录的命令 3.1.1 ls 【list的缩写】 双击某个目录 3.1.2 pwd 【print working directory的缩写】打印当前所处地址 3.1.3 cd 【change directory的缩写】切…

DAY02_运算符和选择语句

1&#xff1a;运算符 对数据进行运算。而对数据运算就要用到运算符。 和表达式做一个简单的描述&#xff1a; 运算符&#xff1a;对字面量或者变量进行操作的符号 表达式&#xff1a;用运算符把字面量或者变量连接起来符合java语法的式子就可以称为表达式。不同运算符连接的…

JUC多并发编程 volatile

特点&#xff1a; 可见性有序性(有时需要禁用重排) 内存语义&#xff1a; 当写一个 volatile 变量时&#xff0c; JMM 会把该线程对应的本地内存中的共享变量值立即刷新回主存中当读一个 volatile 变量时&#xff0c; JMM 会把该线程对应的本地内存设置无效&#xff0c;重新…

m4a怎么转换成mp3,4招搞定

m4a怎么转换成mp3&#xff1f;相信很多朋友都知道&#xff0c;无论是音频、视频、图片等很多电子文件&#xff0c;都会有多种格式。由于格式不统一&#xff0c;很容易导致文件和软件之间出现不兼容的情况&#xff0c;最直接的结果就是在播放器中无法打开&#xff0c;或者使用的…

一篇文章带你了解Spring/SpringBoot常用注解(建议收藏!!! )

这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的场景。对于每一个注解我都说了具体用法&#xff0c;掌握搞懂&#xff0c;使用 SpringBoot 来开发项目基本没啥大问题了&#xff01; 1. SpringBootApplication 这里先单独拎出SpringBootAppl…

NUXT规范及常见问题

props中不要使用Web环境才有的对象&#xff0c;服务端渲染的时候会失败 使用<Nuxt/>组件代替<router-view/>&#xff0c;使用<NuxtLink/>代替<router-link/>static目录下的资源是静态资源&#xff0c;不应该通过import或../static/img/logo.png等方式…

【AI绘画】我以Midjourney为主学习AI绘画效果咋样?

上一篇博客链接&#xff1a;【ChatGPT】ChatGPT掀起AIGC与AI浪潮_山楂山楂丸的博客-CSDN博客 这周&#xff0c;我加入了新星计划&#xff0c; 涉及的领域是我感兴趣以及对未来规划有帮助的——AI绘画&#xff01;​​​​​​​ 文章目录 前言 一、AI绘画是什么 二、AI绘画进…

MYSQL命令小总结

一、创建查看 1.输入cmd&#xff0c;打开控制器&#xff0c;输入如下&#xff0c;打开MYSQL C:\Users\ASUS> mysql -u root -p 2.查看已有数据库 mysql> show databases; 3.建立数据库 4.使用数据库 use englishword;5.建立表单 CREATE TABLE user ( id INT primar…

AI Stable Diffusion Prompt参数【一】

AI Stable Diffusion Prompt参数【一】 配置场景1:草丛里的女性promptNegative Prompt结果 场景2: 雨中披头散发的女孩promptNegative Prompt结果 场景3: 一个女孩和她的朋友在逛街promptNegative Prompt结果 场景4: 学生在教室promptNegative Prompt结果 场景5: 穿着白色丝袜和…

自动化工具 基于 Antd+DRF 开发了一款适配 JMeter 的接口自动化测试报告

JMeter Report 基于 AntdDRF 开发的一款 JMeter 测试报告服务&#xff0c;用于在 JMeter 接口测试中使用。 &#x1f334; 背景 JMeter 是测试工作中常用的一款工具&#xff0c;除了压测还可以用来做接口自动化的测试。 从事测试多年&#xff0c;接口自动化也做过很多的尝试…

从零搭建开发脚手架 自定义打包构建研发输出产物

文章目录 背景目录源码目录结果目录 实现项目打包方式一 使用IDEA工具打包,选择对应的profiles,然后clean package方式二 使用maven命令打包 部署 背景 在打包项目时&#xff0c;通常只需要生成一个可执行的jar文件。然而&#xff0c;有时候需要将启动脚本或外部配置文件附加到…

Java版电子招投标系统源码之了解电子招标投标全流程

随着各级政府部门的大力推进&#xff0c;以及国内互联网的建设&#xff0c;电子招投标已经逐渐成为国内主流的招标投标方式&#xff0c;但是依然有很多人对电子招投标的流程不够了解&#xff0c;在具体操作上存在困难。虽然各个交易平台的招标投标在线操作会略有不同&#xff0…