服务器使用Docker的学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 记录了个人学习docker的操作,利用docker部署一些基本的应用。

安装Docker

环境查看

# 系统内核

[cb@hadoop102 ~]$ uname -r

3.10.0-1160.el7.x86_64


# 系统版本

[cb@hadoop102 ~]$ cat /etc/os-release

NAME="CentOS Linux"

VERSION="7 (Core)"

ID="centos"

ID_LIKE="rhel fedora"

VERSION_ID="7"

PRETTY_NAME="CentOS Linux 7 (Core)"

ANSI_COLOR="0;31"

CPE_NAME="cpe:/o:centos:centos:7"

HOME_URL="https://www.centos.org/"

BUG_REPORT_URL="https://bugs.centos.org/"


CENTOS_MANTISBT_PROJECT="CentOS-7"

CENTOS_MANTISBT_PROJECT_VERSION="7"

REDHAT_SUPPORT_PRODUCT="centos"

REDHAT_SUPPORT_PRODUCT_VERSION="7"

安装

# 1、删除自带的

yum remove docker \

                 docker-client \

                 docker-client-latest \

                 docker-common \

                 docker-latest \

                 docker-latest-logrotate \

                 docker-logrotate \

                 docker-engine

                 

# 2、需要的安装包

yum install -y yum-utils


# 3、设置镜像的仓库

yum-config-manager \

   --add-repo \

   https://download.docker.com/linux/centos/docker-ce.repo  # 默认国外仓库

# 阿里云镜像

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo


# 更新yum索引

yum install -y yum-utils


# 4、安装docker

yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin


# 5、启动docker

systemctl start docker

systemctl enable docker # 开机启动


# 6、查看是否安装成功

docekr version


# 7、hello-world

docker run hello-wold


# 8、查看镜像

docker images


# 卸载docker

yum remove docker-ce docker-ce-cli containerd.io

rm -rf /var/lib/docker

rm -rf /var/lib/containerd

Docker的常用命令

帮助命令

docker version  # 显示docker的版本信息

docker info    # 显示docker的系统信息

docker 命令 --help # 帮助命令

镜像命令

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

REPOSITORY    镜像的仓库源

TAG       镜像的标签

IMAGE ID        镜像的id

CREATED         镜像的创建时间

SIZE 镜像的大小

-a,--all # 列出所有镜像

-q,--quiet # 只显示镜像的id

docker search 搜索镜像

搜索过滤

--filter=STARS=3000 # 搜索出来的镜像START大于3000

docker pull 镜像名[:tag]  下载镜像

[root@hadoop102 cb]# docker pull mysql

Using default tag: latest # 不写tag 默认是latest

latest: Pulling from library/mysql

4be315f6562f: Pull complete # 分层下载

96e2eb237a1b: Pull complete

8aa3ac85066b: Pull complete

ac7e524f6c89: Pull complete

f6a88631064f: Pull complete

15bb3ec3ff50: Pull complete

ae65dc337dcb: Pull complete

573c3c7fa18d: Pull complete

9d10771b98b8: Pull complete

3d8ef442614b: Pull complete

7dc17a6cea26: Pull complete

752752efdaea: Pull complete

Digest: sha256:2dafe3f044f140ec6c07716d34f0b317b98f8e251435abd347951699f7aa3904 # 签名

Status: Downloaded newer image for mysql:latest

docker.io/library/mysql:latest # 真实地址


# 指定版本下载

[root@hadoop102 cb]# docker pull mysql:5.7

5.7: Pulling from library/mysql

4be315f6562f: Already exists

96e2eb237a1b: Already exists

8aa3ac85066b: Already exists

ac7e524f6c89: Already exists

f6a88631064f: Already exists

15bb3ec3ff50: Already exists

ae65dc337dcb: Already exists

a4c4c43adf52: Pull complete

c6cab33e8f91: Pull complete

2e1c4f2c43f6: Pull complete

2e5ee322af48: Pull complete

Digest: sha256:e767595ba3408fbb2dda493be3594b9a148178df58325fafe8b0363662935624

Status: Downloaded newer image for mysql:5.7

docker.io/library/mysql:5.7

docker rmi 删除镜像

[root@hadoop102 cb]# docker rmi -f 容器id # 删除指定容器

[root@hadoop102 cb]# docker rmi -f 容器id 容器id 容器id # 删除多个容器

[root@hadoop102 cb]# docker rmi -f $(docker images -aq) # 删除所有容器

容器命令

有了镜像才可以创建容器,linux

docker pull centos

新建容器并启动

docker run [可选参数] image

# 参数说明

--name="Name"  # 容器名字 tomcat01,tomcat02,用来区分容器

-d       # 后台方式运行

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

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

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

 -p 主机端口:容器端口(常用)

 -p 容器端口

 容器端口

-p       # 随机指定端口


# 测试 启动并进入容器

[root@hadoop102 cb]# docker run -it centos /bin/bash

[root@b743f8bf5229 /]# ls

bin  etc   lib   lost+found  mnt  proc  run   srv  tmp  var

dev  home  lib64  media       opt  root  sbin  sys  usr


# 从容器中退回主机

[root@b743f8bf5229 /]# exit

exit

[root@hadoop102 cb]# ls

a.txt  bin

列出所有运行的容器

docker ps 命令

# docker ps 命令

   # 列出当前正在运行的容器

-a # 列出当前正在运行的容器并带出历史运行过的容器

-n=? # 显示最近创建的容器

-q # 只显示容器的编号


[root@hadoop102 cb]# docker ps

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

[root@hadoop102 cb]# docker ps -a

CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS                       PORTS     NAMES

b743f8bf5229   centos         "/bin/bash"   3 minutes ago   Exited (130) 2 minutes ago             busy_wu

6023f9e334bb   feb5d9fea6a5   "/hello"      5 hours ago     Exited (0) 5 hours ago                 eloquent_meitner


退出容器

exit  # 直接容器停止并退出

Ctrl + p + q  # 容器不停止退出

删除容器

docker rm 容器id

docker rm 容器id   # 删除指定容器 不能删除正在运行的容器

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

docker ps -a -q|xargs docker rm # 删除所有容器

启动和停止容器的操作

docker start 容器id   # 启动容器

docker restart 容器id  # 重启容器

docker stop 容器id   # 停止当前正在运行的容器

docker kill 容器id   # 强制停止当前容器

常用的其他命令

后台启动

# 命令 docker run -d 镜像名

[root@hadoop102 cb]# docker run -d centos


# 问题 发现centos停止

# 需要一个前台命令

查看日志

docker logs -tf --tail


-tf   # 显示日志

--tail number # 显示日志的条数

[root@hadoop102 cb]# docker logs -tf --tail 10 e6eeb24de0bc

查看容器中的进程信息ps

# docker top 容器id

[root@hadoop102 cb]# docker top e6eeb24de0bc

UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD

root                3081                3061                0                   20:29               ?                   00:00:00            /bin/bash

查看镜像源数据

# 命令 docker inspect 容器id

[root@hadoop102 cb]# docker inspect e6eeb24de0bc

进入当前正在运行的容器

# 命令

docker exec -it 容器id bashshell


# 测试

[root@hadoop102 cb]# docker exec -it e6eeb24de0bc /bin/bash

[root@e6eeb24de0bc /]# ls

bin  etc   lib   lost+found  mnt  proc  run   srv  tmp  var

dev  home  lib64  media       opt  root  sbin  sys  usr

[root@e6eeb24de0bc /]# ps

  PID TTY          TIME CMD

   15 pts/1    00:00:00 bash

   30 pts/1    00:00:00 ps


# 方式2

docker attach 容器id


# 测试

[root@hadoop102 cb]# docker attach e6eeb24de0bc

[root@e6eeb24de0bc /]#


# docker exec    # 进入容器后开启一个新的终端,可以在里面操作(常用)

# docker attach  # 进入容器正在执行的终端,不会启动新的进程

从容器内拷贝文件到主机上

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

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
24天前
|
存储 Linux Docker
docker在欧拉服务器上编译安装应该注意什么?如何操作?
【10月更文挑战第31天】docker在欧拉服务器上编译安装应该注意什么?如何操作?
54 2
|
2月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
297 3
|
2月前
|
弹性计算 数据库连接 Nacos
阿里云ECS服务器在docker中部署nacos
docker pull nacos 失败,docker部署nacos遇到的问题,nacos数据库连接,nacos端口映射
119 1
|
2月前
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
39 2
|
2月前
|
安全 网络安全 开发者
Docker学习笔记(一):Docker命令总结
本文介绍了Docker的基本概念、优点以及常用命令。Docker是一个开源的应用容器引擎,它通过容器打包应用程序及其依赖项,实现快速部署和迁移。主要优点包括轻量级、可移植性、易于管理、安全性和开源性。文章还区分了镜像和容器的概念,并提供了构建镜像、查看容器、运行容器、停止和删除容器等常用Docker命令的示例。
142 0
|
2月前
|
前端开发 Docker 容器
主机host服务器和Docker容器之间的文件互传方法汇总
Docker 成为前端工具,可实现跨设备兼容。本文介绍主机与 Docker 容器/镜像间文件传输的三种方法:1. 构建镜像时使用 `COPY` 或 `ADD` 指令;2. 启动容器时使用 `-v` 挂载卷;3. 运行时使用 `docker cp` 命令。每种方法适用于不同场景,如静态文件打包、开发时文件同步及临时文件传输。注意权限问题、容器停止后的文件传输及性能影响。
235 0
|
关系型数据库 MySQL 数据库
基于阿里云服务器安装Docker完整图文教程
基于阿里云服务器安装Docker完整图文教程
1865 0
|
3天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
3天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
24 6
|
3天前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
13 5