docker的安装和常用命令

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
日志服务 SLS,月写入数据量 50GB 1个月
简介: 最近学习了docker做了一些笔记,跟朋友们分享一下

安装

Ubutun系统Docker的安装主要分为两种方式:一种是从官方安装,另一种是从阿云镜像源安装

官方安装

1、更新包管理器:

sudo apt update

2、安装 Docker 的依赖包:

sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release

3、添加 Docker GPG 密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

4、添加 Docker apt 仓库:

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5、更新 apt 缓存:

sudo apt update

6、安装 Docker:

sudo apt install docker-ce docker-ce-cli containerd.io

7、启动 Docker 服务:

sudo systemctl start docker

8、确认 Docker 已经正确安装:

sudo docker run hello-world

阿里云镜像源安装

1、更新包管理器:

sudo apt update

2、安装 Docker 的依赖包:

sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release

3、添加阿里云 Docker 镜像源 GPG 密钥:

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

4、添加阿里云 Docker 镜像源:

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
注意:如果你使用的是非 Ubuntu 系统,比如 Debian 或 CentOS,可以参考阿里云 Docker 官方文档提供的相应命令。

5、更新 apt 缓存:

sudo apt update

6、安装 Docker:

sudo apt install docker-ce docker-ce-cli containerd.io

7、启动 Docker 服务:

sudo systemctl start docker

卸载docker

1、卸载依赖

sudo apt remove docker-ce docker-ce-cli containerd.io

2、删除资源

rm -rf /var/lib/docker

底层原理

Docker是如何工作的?

Docker是一个Client—server结构的系统,Docker的守护进程运行在主机上。通过Socker从客户端访问!

DockerServer接收到Docker—Client的指令,就会执行这个命令。

Docker的常用命令

帮助命令

docker version #显示Docker的版本信息

docker info #显示docker的系统信息,包括镜像和容器的数量

docker 命令 --help #万能命令

帮助文档:Reference documentation | Docker Docs

镜像命令

docker images 查看所有本地的主机上的镜像

ji@ji-VirtualBox:~$ docker images

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE

hello-world   latest    9c7a54a9a43c   3 months ago   13.3kB

#解释
REPOSITORY           镜像的仓库源
TAG                  镜像的标签
IMAGE ID             镜像的ID 
CREATED              镜像的创建时间
SIZE                 镜像的大小

#可选项
-a     --all    #列出所有的镜像
-q     --quiet  #只显示镜像的ID

docker search 搜索镜像

docker search mysql

NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED

mysql                           MySQL is a widely used, open-source relation…   14403     [OK]       

mariadb                         MariaDB Server is a high performing open sou…   5500      [OK]       

percona                         Percona Server is a fork of the MySQL relati…   619       [OK]       

phpmyadmin                      phpMyAdmin - A web interface for MySQL and M…   854       [OK]       

bitnami/mysql                   Bitnami MySQL Docker Image                      96                   [OK]

circleci/mysql                  MySQL is a widely used, open-source relation…   29                   

bitnami/mysqld-exporter                                                         5

docker pull 下载镜像

#下载镜像   docker pull 镜像名[:tag]
ji@ji-VirtualBox:~$ docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
b193354265ba: Pull complete 
14a15c0bb358: Pull complete 
02da291ad1e4: Pull complete 
9a89a1d664ee: Pull complete 
a24ae6513051: Pull complete 
b85424247193: Pull complete 
9a240a3b3d51: Pull complete 
8bf57120f71f: Pull complete 
c64090e82a0b: Pull complete 
af7c7515d542: Pull complete 
Digest: sha256:c0455ac041844b5e65cd08571387fa5b50ab2a6179557fd938298cab13acf0dd
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest   #真实地址

docker rmi 删除镜像

docker rmi -f     容器ID      #删除指定的容器
docker rmi -f   容器ID  容器ID 容器ID     #删除多个容器

容器命令

说明:我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习

docker pull centos

新建容器并启动

docker  run  [可选参数]  image

#参数说明

--name = “Name”           容器名字  tomcat01     tamcat02    用来区分容器

-d                                      后台方式进行

-it                                      使用交互方式运行,进入容器查看内容

-p                                       指定容器的端口   -p      8080:8080

​      -p   主机端口:容器端口

​      -p    容器端口

-p              随机指定端口

# 测试,启动并进入容器
ji@ji-VirtualBox:~$ docker run -it centos /bin/bash

[root@d6fbc595e4a2 /]# ls

bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

列出所有的正在运行中的容器

#docker ps  命令
-a   #列出当前正在运行的容器
-n=?  #显示最近创建的容器
-q    #只显示容器的编号

退出容器

exit   #直接容器停止并退出
Ctrl + P + Q  #容器不停止退出

删除容器

docker rm 容器id                   #删除指定的容器
docker rm -f  $(docker ps -aq)    #删除所有的容器

启动和停止容器的操作

docker start 容器id     #启动容器
docker restart 容器id   #重启容器
docker stop    容器id   #停止当前正在运行的容器
docker kill    容器id   #强制停止当前容器

常用的其他命令

后台启动容器

#命令  docker run -d 镜像名
ji@ji-VirtualBox:~$ docker run -d centos

01cbb7fb6d6aaa08f6cd3508f62f38442ac4cb46d1e2744278f413581032083e

ji@ji-VirtualBox:~$ docker ps

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

#常见的坑,docker  容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止

查看日志

docker logs -f -t --tails  
#显示日志
-tf          #显示日志
--tails      #要显示日志条数
如: docker logs -tf --tails 10 dce7b86

查看容器中的进程信息

#命令  docker top 容器的ID
ji@ji-VirtualBox:~$ docker top 55ae1e4ca9f4

UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD

root                5085                5061                0                   10:47               pts/0               00:00:00            /bin/bash

查看镜像的元数据

#命令
docker inspect 容器ID

进入当前正在运行的容器

#我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置

#命令
docker exec -it 容器id  bashshell

#测试
ji@ji-VirtualBox:~$ docker exec -it 55ae1e4ca9f4  /bin/bash

[root@55ae1e4ca9f4 /]# ls

bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

[root@55ae1e4ca9f4 /]# ps -ef

UID          PID    PPID  C STIME TTY          TIME CMD

root           1       0  0 02:47 pts/0    00:00:00 /bin/bash

root          16       0  0 06:52 pts/1    00:00:00 /bin/bash

root          31      16  0 06:54 pts/1    00:00:00 ps -ef

从容器内拷贝文件到主句

```shell
docker cp 容器id:容器内路径 目的主机路径

查看当前主机下目录

[root@55ae1e4ca9f4 /]# ls

bin etc lib lost+found mnt proc run srv test.java usr

dev home lib64 media opt root sbin sys tmp var

[root@55ae1e4ca9f4 /]# pwd

/

[root@55ae1e4ca9f4 /]# exit

exit

ji@ji-VirtualBox:~$ docker cp 55ae1e4ca9f4:/test.java /home/ji

Successfully copied 1.54kB to /home/ji

ji@ji-VirtualBox:~$ ls

Desktop Documents Downloads EPICS Music Pictures Public snap Templates test.java

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
消息中间件 Docker 容器
消息中间件RabbitMQ---Docker安装RabbitMQ、以及RabbitMQ的基本使用【二】
这篇文章提供了RabbitMQ的安装和基本使用教程,包括如何使用Docker拉取RabbitMQ镜像、创建容器、通过浏览器访问管理界面,以及如何创建交换机、队列、绑定和使用direct、fanout和topic三种类型的交换器进行消息发布和接收的测试。
消息中间件RabbitMQ---Docker安装RabbitMQ、以及RabbitMQ的基本使用【二】
|
1天前
|
关系型数据库 MySQL Java
腾讯云服务器的使用、服务器中使用Docker安装常见的软件、如何将一个项目发布到服务器
这篇文章介绍了在腾讯云服务器上使用Docker安装常见软件的过程,包括安装MySQL、Redis和Tomcat,并提供了解决连接问题的方法。同时,还涉及了服务器中安装JDK 1.8的步骤和如何将项目打包部署到服务器上的指导,包括注意事项和操作提示。
腾讯云服务器的使用、服务器中使用Docker安装常见的软件、如何将一个项目发布到服务器
|
1天前
|
应用服务中间件 Docker 容器
在服务器中使用Docker安装Tomcat、同时实现目录挂载、并且部署War包到服务器
这篇文章介绍了在Docker中安装Tomcat的过程,包括搜索Tomcat镜像、拉取镜像、目录挂载的准备、创建并挂载容器,以及如何进入容器和进行测试。文中还说明了如何将WAR包部署到Tomcat服务器并访问部署的应用。
在服务器中使用Docker安装Tomcat、同时实现目录挂载、并且部署War包到服务器
|
1天前
|
存储 Docker 容器
在Docker中,容器退出后,通过docker ps命令查看不到,数据会丢失么?
在Docker中,容器退出后,通过docker ps命令查看不到,数据会丢失么?
|
1天前
|
应用服务中间件 Linux nginx
Linux虚拟机磁盘扩容、Docker容器磁盘满的问题、Docker安装nginx
这篇文章讨论了Linux虚拟机磁盘扩容的方法,包括外部配置、具体扩容步骤和扩容后的效果验证。同时,文章还涉及了Docker容器磁盘满的问题及其解决方法,如删除不必要的镜像和容器,以及调整Docker的安装路径。此外,还提到了意外情况的处理,例如误删除停止的容器后的应对措施。最后,文章还提供了使用Docker安装nginx的步骤和成功访问的截图。
Linux虚拟机磁盘扩容、Docker容器磁盘满的问题、Docker安装nginx
|
1天前
|
数据可视化 Docker 容器
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
这篇文章提供了通过Docker安装Elasticsearch和Kibana的详细过程和图解,包括下载镜像、创建和启动容器、处理可能遇到的启动失败情况(如权限不足和配置文件错误)、测试Elasticsearch和Kibana的连接,以及解决空间不足的问题。文章还特别指出了配置文件中空格的重要性以及环境变量中字母大小写的问题。
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
|
1天前
|
关系型数据库 MySQL Linux
一文教会你如何在Linux系统中使用Docker安装Mysql 5.7版本 【详细过程+图解】
这篇文章提供了在Linux系统中使用Docker安装Mysql 5.7版本的详细过程和图解,包括安装指定版本、创建实例、启动、使用Navicat连接测试、文件挂载与端口映射、进入容器、配置文件修改以及重新启动容器等步骤。
一文教会你如何在Linux系统中使用Docker安装Mysql 5.7版本 【详细过程+图解】
|
1天前
|
Ubuntu NoSQL Linux
一文讲明Docker的基本使用,常见Docker命令使用 、Docker的安装使用等【详细说明+图解+概念+实践】
这篇文章详细介绍了Docker的基本使用,包括Docker的安装、常用命令、架构概念等,并通过图解和实践帮助读者快速掌握Docker的使用方法。
一文讲明Docker的基本使用,常见Docker命令使用 、Docker的安装使用等【详细说明+图解+概念+实践】
|
2天前
|
Ubuntu Shell Docker
在Docker环境下如何“安装”Ubuntu
【8月更文挑战第18天】在Docker环境中“安装”Ubuntu实际上是指利用Ubuntu镜像构建容器。
19 1
|
1天前
|
Linux Docker 容器
在CentOS上安装Docker的指南:
【8月更文挑战第19天】介绍在CentOS上安装Docker的过程:首先确认CentOS版本兼容,建议使用7或更高版本,并通过`yum update -y`更新系统。安装Docker时推荐使用官方仓库方法,需安装`yum-utils`等工具,设置Docker仓库简化安装流程。可选配置国内镜像源(如阿里云)提升下载速度。亦可通过RPM包离线安装。安装后启动Docker服务并通过`systemctl enable docker`设为开机启动。最后,运行`docker run hello-world`验证安装。如遇问题,使用`sudo journalctl -u docker`查看日志排错。
40 0