docker的安装和常用命令

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
日志服务 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
相关文章
|
25天前
|
安全 Docker 容器
|
25天前
|
网络安全 数据安全/隐私保护 Docker
|
24天前
|
存储 监控 安全
|
1月前
|
关系型数据库 MySQL Linux
Docker安装Mysql5.7,解决无法访问DockerHub问题
当 Docker Hub 无法访问时,可以通过配置国内镜像加速来解决应用安装失败和镜像拉取超时的问题。本文介绍了如何在 CentOS 上一键配置国内镜像加速,并成功拉取 MySQL 5.7 镜像。
281 2
Docker安装Mysql5.7,解决无法访问DockerHub问题
|
18天前
|
Prometheus 监控 Cloud Native
基于Docker安装Grafana和Prometheus
Grafana 是一款用 Go 语言开发的开源数据可视化工具,支持数据监控和统计,并具备告警功能。通过 Docker 部署 Grafana 和 Prometheus,可实现系统数据的采集、展示和告警。默认登录用户名和密码均为 admin。配置 Prometheus 数据源后,可导入主机监控模板(ID 8919)进行数据展示。
53 2
|
21天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
48 2
|
22天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
31 3
|
24天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
201 3
|
24天前
|
存储 关系型数据库 MySQL
|
8天前
|
Docker 容器
【赵渝强老师】使用二进制包方式安装Docker
本文介绍了在企业生产环境中无法直接访问外网时,如何使用Docker官方提供的二进制包进行Docker的离线安装。文章详细列出了从安装wget、下载Docker安装包、解压、复制命令到启动Docker服务的具体步骤,并提供了相关命令和示例图片。最后,还介绍了如何设置Docker为开机自启模式。