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

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
22天前
|
弹性计算 Ubuntu Linux
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS自动化部署。支持Ubuntu 22.04/20.04、CentOS 7.7-7.9及Alibaba Cloud Linux 3.2104 LTS。前提条件:ECS实例需运行中且有公网。步骤:选择Docker扩展并安装,验证成功通过命令`docker -v`查看版本号。
220 79
|
1月前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
188 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
1月前
|
NoSQL 关系型数据库 应用服务中间件
docker基础篇:安装tomcat
docker基础篇:安装tomcat
172 64
|
9天前
|
前端开发 应用服务中间件 nginx
docker安装nginx,前端项目运行
通过上述步骤,你可以轻松地在Docker中部署Nginx并运行前端项目。这种方法不仅简化了部署流程,还确保了环境的一致性,提高了开发和运维的效率。确保按步骤操作,并根据项目的具体需求进行相应的配置调整。
56 25
|
9天前
|
安全 数据安全/隐私保护 Docker
docker私有仓库harbor安装
通过以上步骤,您可以成功在企业内部安装和配置Harbor私有仓库,方便地管理和分发Docker镜像。Harbor不仅提供了基础的镜像管理功能,还增强了安全性、身份管理和审计功能,使其成为企业级容器镜像管理的理想选择。
60 22
|
16天前
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
101 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
25天前
|
NoSQL 关系型数据库 Redis
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
98 14
|
22天前
|
关系型数据库 MySQL 应用服务中间件
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
80 7
|
1月前
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
120 24
|
1月前
|
NoSQL 算法 Redis
docker高级篇(大厂进阶):安装redis集群
docker高级篇(大厂进阶):安装redis集群
129 24

热门文章

最新文章