docker的安装和常用命令

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 最近学习了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
相关文章
|
9天前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
9天前
|
Ubuntu Linux Docker
Ubuntu 18.04 安装Docker实战案例
关于如何在Ubuntu 18.04系统上安装Docker的实战案例,包括安装步骤、配置镜像加速以及下载和运行Docker镜像的过程。
66 3
Ubuntu 18.04 安装Docker实战案例
|
9天前
|
存储 Linux Docker
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
关于如何在CentOS 7.6上安装Docker、介绍Docker存储引擎以及服务进程关系的实战案例。
47 3
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
|
9天前
|
应用服务中间件 Shell nginx
Docker容器操作基础命令
关于Docker容器操作基础命令的教程,涵盖了从启动、查看、删除容器到端口映射和容器信息获取的一系列常用命令及其使用方法。
50 14
|
6天前
|
存储 Docker 容器
docker save命令和load命令
docker save命令和load命令
|
14天前
|
Ubuntu Docker 索引
2024年最新版 Ubuntu 20+ 上安装 Docker
这篇文章提供了在Ubuntu 20+版本上安装Docker的详细步骤,包括更新软件包索引、安装依赖包、添加Docker官方GPG密钥、设置Docker稳定版仓库、安装Docker CE以及验证安装是否成功,并指导如何将用户添加到docker组以非root用户身份运行Docker。
|
17天前
|
存储 搜索推荐 应用服务中间件
深入探索Docker 安装 Tomcat
【8月更文挑战第26天】
28 4
|
16天前
|
NoSQL Redis 数据安全/隐私保护
深入探索利用Docker安装Redis
【8月更文挑战第27天】
51 2
|
16天前
|
Docker 容器
Docker Kill/Pause/Unpause命令详细使用指南
总之,`docker kill`、`docker pause`和 `docker unpause`命令是对容器执行快速状态控制操作的有力工具。使用这些命令可以帮助您更好地管理容器,并在需要时快速响应异常情况。在操作过程中,应当谨慎使用 `docker kill`,因为它将导致容器立即停止,有可能导致数据丢失或文件系统损坏。在可能的情况下,先尝试使用 `docker stop`命令以正常方式停止容器。
11 2
|
15天前
|
负载均衡 调度 Docker