【Docker学习笔记 二】Docker安装、运行流程与常用命令

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 【Docker学习笔记 二】Docker安装、运行流程与常用命令

上一篇Blog详细介绍了Docker为什么会出现,是为了解决什么问题而出现;Docker的基本组成部分、架构。本篇Blog就来详细了解下Docker如何安装、卸载以及常用的操作命令有哪些。因为Docker可以安装在任何物理机、虚拟机以及公有云、私有云上,而我自己购买的腾讯云服务器已经是windows系统并且运行着服务,所以还是使用自己的PC上安装的虚拟机来操作吧。虚拟机我安装的是Centos7,之前我有两篇Blog详细介绍过如何通过VMWare安装一个虚拟机集群:【分布式集群搭建 一】虚拟机配置(VMware+Centos7+SecureCRT+AppNode)【分布式集群搭建 二】克隆虚拟机并配置集群,有需要的可以按照我之前的步骤先本地安装虚拟机,这样就不用购买云服务器了。

Docker安装

接下来就在Centos7上进行Docker的安装,使用SecureCRT进行虚拟主机控制,当然也可以使用AppNode进行可视化远程控制。

1 环境准备

首先检查下Centos7的内核版本,确认支持Docker。首先打开VMWARE,开启一个虚拟机主机:

点击打开虚拟主机CentOS-7-TML1

打开CentOS-7-TML1主机后,通过SecureCRT进行虚拟主机远程控制:查看内核版本:uname -r,可以看到内核版本大于3.10

查看系统配置: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"

2 Docker安装

访问Docker官方网站,按照步骤进行安装:https://docs.docker.com/

由于是在Linux下进行操作,所以直接选择Linux系统安装:

1 卸载旧版本

找到CentOS的安装文档,安装Docker的第一步是卸载旧的版本:

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

因为我的电脑之前没有安装过Docker,所以会有这样的提示:

这里简单介绍下YUM:(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。RPM是由红帽公司开发的软件包管理方式,使用RPM我们可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。

2 下载需要的安装包

通过如下命令进行运行环境的安装包:yum install -y yum-utils

3 配置下载Docker的yum源

默认的Docker下载地址是国外的比较慢,可以使用国内的阿里云的yum镜像仓库:

#国外的地址
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo 
# 设置阿里云的Docker镜像仓库
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

配置结果如下:

4 更新yum软件包索引

安装Docker引擎前先进行yum软件包的更新:yum makecache fast

5 安装Docker引擎

安装Docker引擎的命令如下:yum install docker-ce docker-ce-cli containerd.io

1 如果过程中一直报差找不到镜像,用该命令清理下yum包:yum clean all

2 如果安装结果提示【尚未安装任何秘钥】则按照如下步骤处理:

做完以上两个步骤后再次执行Docker安装命令:

6 启动Docker

通过如下命令启动Docker,检查Docker版本以及设置Docker开机自动启动:

systemctl start docker
# 查看当前版本号,是否启动成功
docker version
# 设置开机自启动
systemctl enable docker

结果如下:

7 测试Hello-World程序

安装完成后我们可以下载hello-world镜像进行测试:docker run hello-world

查看下载的hello-world镜像:docker images

3 Docker卸载

Docker的卸载命令如下:

# 1. 卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
# 2. 删除资源  . /var/lib/docker是docker的默认工作路径
rm -rf /var/lib/docker

4 配置阿里云镜像加速

进入阿里云官网,搜索容器镜像服务:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

使用如下命令进行镜像配置,每个人有自己独有的加速器,配置后docker的镜像下载就从这个站点下载啦,按照以下4个命令执行即可:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

国内的镜像加速器大多是采用定时同步的方式来缓存,缓存Docker Hub上的镜像。我理解原理就是加速器的站点是一个可以访问外网的代理服务器:

  • 当我们pull镜像时请求不会直接发给目的主机,而是先发给代理服务器,代理服务器接受了客户的请求以后,由代理服务器向目的主机发出请求,并接受目的主机的数据,缓存于代理服务器的硬盘中,然后再由代理服务器将客户要求的数据发给客户
  • 我们的主机与代理服务器通过代理服务VPN连接

这样就能做到镜像加速了,关于自己搭建镜像加速服务器可以参考这篇:https://juejin.cn/post/6933095684476403719

Docker运行流程

参照之前的Hello-world镜像拉取过程:

[root@192 ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete 
Digest: sha256:507ecde44b8eb741278274653120c2bf793b174c06ff4eaa672b713b3263477b
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.

可以得知docker run命令的执行流程,启动并运行一个hello-world容器。

Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上,通过Socker从客户端访问!Docker Server接收到Docker-Client的指令,就会执行这个指令!

每个Docker容器就好像一个小的虚拟机,和主机是隔离的,容器之间互相也是隔离的。Docker新建一个容器的时候,不需要像虚拟机一样重新加载一个操作系统内核,直接利用宿主机的操作系统,而虚拟机是需要加载Guest OS

Docker常用命令

包含基础命令,镜像命令以及容器命令。

1 基础命令

通过基础命令查看命令的一些帮助

docker version          #查看docker的版本信息
docker info             #查看docker的系统信息,包括镜像和容器的数量
docker 命令 --help       #帮助命令(可查看可选的参数)
docker COMMAND --help

例如可以通过docker info 查看到现在的镜像来源是我们上边配置的阿里云镜像加速器对应地址。

命令的帮助文档地址:https://docs.docker.com/engine/reference/commandline/docker/

2 镜像命令

查看本地镜像、搜索镜像以及下载镜像,从这个站点:https://hub.docker.com/search?q=mysql&type=image,而由于上边我们的配置,实际下载的镜像来源于阿里云的镜像加速器地址【当然该地址的镜像也都是同步自DockerHub官方镜像】

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

[root@192 ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    bf756fb1ae65   11 months ago   13.3kB
#解释:
1.REPOSITORY  镜像的仓库源
2.TAG  镜像的标签
3.IMAGE ID 镜像的id
4.CREATED 镜像的创建时间
5.SIZE 镜像的大小
# 可选参数
-a/--all 列出所有镜像
-q/--quiet 只显示镜像的id

2 docker search 搜索镜像

[root@192 ~]# docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   10308     [OK]
mariadb                           MariaDB is a community-developed fork of MyS…   3819      [OK]
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   754                  [OK]
percona                           Percona Server is a fork of the MySQL relati…   517       [OK]
centos/mysql-57-centos7           MySQL 5.7 SQL database server                   86
mysql/mysql-cluster               Experimental MySQL Cluster Docker images. Cr…   79
centurylink/mysql                 Image containing mysql. Optimized to be link…   60                   [OK]
#可选参数
Search the Docker Hub for images
Options:
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print search using a Go template
      --limit int       Max number of search results (default 25)
      --no-trunc        Don't truncate output
#搜索收藏数大于3000的镜像
[root@192 ~]# docker search mysql --filter=STARS=3000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   12051     [OK]       
mariadb   MariaDB Server is a high performing open sou…   4619      [OK]

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

[root@192 ~]# docker pull mysql
Using default tag: latest            #如果不写tag默认就是latest
latest: Pulling from library/mysql
6ec7b7d162b2: Pull complete          #分层下载,docker image的核心-联合文件系统
fedd960d3481: Pull complete
7ab947313861: Pull complete
64f92f19e638: Pull complete
3e80b17bff96: Pull complete
014e976799f9: Pull complete
59ae84fee1b3: Pull complete
ffe10de703ea: Pull complete
657af6d90c83: Pull complete
98bfb480322c: Pull complete
6aa3859c4789: Pull complete
1ed875d851ef: Pull complete
Digest: sha256:78800e6d3f1b230e35275145e657b82c3fb02a27b2d8e76aac2f5e90c1c30873 #签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest  #下载来源的真实地址  #docker pull mysql等价于docker pull docker.io/library/mysql:latest

4 docker rmi 删除镜像

#1.删除指定的镜像id
[root@192 ~]# docker rmi -f  镜像id
#2.删除多个镜像id
[root@192 ~]# docker rmi -f  镜像id 镜像id 镜像id
#3.删除全部的镜像id
[root@192 ~]# docker rmi -f  $(docker images -aq)

3 容器命令

拉取容器、运行容器、进入容器、退出容器、列出运行过的容器、删除容器、启动和停止容器

1 拉取镜像

使用容器的前提是存在该镜像,所以先拉取一个centos容器:docker pull centos

2 创建并进入容器

docker run [可选参数] image
#参数说明
--name="名字"          指定容器名字
-d                     后台方式运行
-it                    使用交互方式运行,进入容器查看内容
-p                     指定容器的端口
(
-p ip:主机端口:容器端口  配置主机端口映射到容器端口
-p 主机端口:容器端口
-p 容器端口
)
-P                     随机指定端口(大写的P)

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

交互方式下,可以运行容器并直接进入容器:

#启动并进入容器:
[root@192 ~]# docker run -it centos /bin/bash   
[root@192 ~]# ls      
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

退出时可以使用Ctrl+P+Q仅退出不停止容器运行。

[root@192 ~]# docker run -it centos /bin/bash 
[root@1c1dd47ce82c /]# [root@192 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND             CREATED          STATUS          PORTS      NAMES
1c1dd47ce82c   centos    "/bin/bash"         29 seconds ago   Up 27 seconds              elated_colden
945abcb48a14   tomcat    "catalina.sh run"   5 minutes ago    Up 5 minutes    8080/tcp   quizzical_golick
[root@192 ~]#

即使通过exit退出了,再次通过docker start 容器id也可以正确运行

2,使用后台方式运行,进入容器查看内容

如果使用后台方式进入运行,则可以通过如下命令:

[root@192 ~]# docker run -d tomcat
945abcb48a14fd229f21457d858c9c2885cc04e659aeebc26d9b13cff7ddc0fe
[root@192 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND             CREATED         STATUS         PORTS      NAMES
945abcb48a14   tomcat    "catalina.sh run"   4 seconds ago   Up 2 seconds   8080/tcp   quizzical_golick

这里有个坑需要注意,除了tomcat这类后台服务自启动的情况。docker如果没有前台应用,没有提供服务就会立即自动停止,必须要有一个前台的进程,否则会自动停止

[root@192 ~]# docker run -d centos /bin/bash    
1dadd4b80c2cc31146ee37ed6408cd892ff0495e354f7635b2672a8c41a29fd5
[root@192 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND             CREATED          STATUS          PORTS      NAMES
1c1dd47ce82c   centos    "/bin/bash"         5 minutes ago    Up 5 minutes               elated_colden
945abcb48a14   tomcat    "catalina.sh run"   11 minutes ago   Up 11 minutes   8080/tcp   quizzical_golick
[root@192 ~]#

这种情况下可以通过前台脚本一直运行的方式让它运行:

[root@192 ~]# docker run -d centos /bin/sh -c "while true;do echo tml;sleep 5;done"  
cc886973b2cb449191f02ec93009982d399f230950115568963ddd25e8ecad74
[root@192 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS      NAMES
cc886973b2cb   centos    "/bin/sh -c 'while t…"   4 seconds ago    Up 4 seconds               suspicious_borg
1c1dd47ce82c   centos    "/bin/bash"              6 minutes ago    Up 6 minutes               elated_colden
945abcb48a14   tomcat    "catalina.sh run"        12 minutes ago   Up 12 minutes   8080/tcp   quizzical_golick
[root@192 ~]#

即使通过stop停止容器运行了,再次启动依然可以通过ps查到,因为有前端进程在调用着它的服务。总的来说-it的交互模式比-d的后台模式顽强,不需要前台服务调着也可以运行,而-d模式比不加选项的前台进程运行模式顽强点,停了之后,只要前端有服务调着就能一直运行,而最弱的前台进程模式则只要敲新命令就退出去了,这让我想到了之前调Kafka时一直启动不了的问题了,嗨,就是因为Kafka进程没后台模式运行。

3 退出容器

#exit 停止并退出容器(后台方式运行则仅退出)
#Ctrl+P+Q  不停止容器退出
[root@192 ~]# exit
exit
[root@192 ~]#

4 启动、停止容器

想要启动和停止容器可以使用如下命令,尤其是后台运行时。

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

5 列出容器列表

#docker ps [可选项]  # 列出当前正在运行的容器
-a           # 列出所有容器的运行记录
-n=?         # 显示最近创建的n个容器
-q          # 显示所有容器,只显示容器编号
[root@192 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@192 ~]# docker run -it centos /bin/bash
[root@4a93ee953a85 /]# docker ps[root@192 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED              STATUS              PORTS     NAMES
4a93ee953a85   centos    "/bin/bash"   About a minute ago   Up About a minute             nervous_kowalevski
[root@192 ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS                     PORTS     NAMES
bca129320bb5   centos         "/bin/bash"   4 minutes ago   Exited (0) 3 minutes ago             optimistic_shtern
bd1b8900c547   centos         "/bin/bash"   6 minutes ago   Exited (0) 5 minutes ago             cool_tesla
cf6adbf1b506   bf756fb1ae65   "/hello"      5 hours ago     Exited (0) 5 hours ago               optimistic_darwin

6 删除容器

docker rm 容器id                 #删除指定的容器,不能删除正在运行的容器,强制删除使用 rm -f
docker rm -f $(docker ps -aq)    #强制删除所有的容器,包含运行中的
docker ps -a -q|xargs docker rm  #删除所有的容器

4 其它常用命令

包括查看运行日志、查看容器中进程信息、查看容器的元数据、进入当前正在运行的容器

1 查看运行日志

[root@192 ~]# docker logs --help
Usage:  docker logs [OPTIONS] CONTAINER
Fetch the logs of a container
Options:
      --details        Show extra details provided to logs
  -f, --follow         Follow log output
      --since string   Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
  -n, --tail string    Number of lines to show from the end of the logs (default "all")
  -t, --timestamps     Show timestamps
      --until string   Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)

常用命令如下:

docker logs -tf 容器id
docker logs --tail number 容器id #num为要显示的日志条数

试验一下看看:

#docker容器后台运行,必须要有一个前台的进程,否则会自动停止
#编写shell脚本循环执行,使得centos容器保持运行状态
[root@192 ~]# docker run -d centos /bin/sh -c "while true;do echo tml;sleep 5;done"
c2a9905be58b87056b97c1717f4bbd53ab8fdf9626b10243797ce2601e112eb2
[root@192 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
c2a9905be58b   centos    "/bin/sh -c 'while t…"   7 seconds ago    Up 6 seconds              zealous_shockley
1a89c6b0a6cf   centos    "/bin/sh -c 'while t…"   2 minutes ago    Up 2 minutes              wizardly_hofstadter
3b71711140a1   centos    "/bin/bash"              18 minutes ago   Up 17 minutes             ecstatic_brattain
[root@192 ~]# docker logs -tf --tail 10 c703b5b1911f c2a9905be58b 
"docker logs" requires exactly 1 argument.
See 'docker logs --help'.
Usage:  docker logs [OPTIONS] CONTAINER
Fetch the logs of a container
[root@192 ~]# docker logs -tf --tail 10 c2a9905be58b 
2022-02-03T11:09:37.007194732Z tml
2022-02-03T11:09:42.010548527Z tml
2022-02-03T11:09:47.016344088Z tml
2022-02-03T11:09:52.019194397Z tml
2022-02-03T11:09:57.022509980Z tml
2022-02-03T11:10:02.028690964Z tml
2022-02-03T11:10:07.031701028Z tml
2022-02-03T11:10:12.035592381Z tml
2022-02-03T11:10:17.042442369Z tml
2022-02-03T11:10:22.044663053Z tml
2022-02-03T11:10:27.047141833Z tml
2022-02-03T11:10:32.051435050Z tml

2 查看容器中进程信息

使用:docker top 容器ID 命令,可以用这个杀进程

[root@192 ~]# docker top c2a9905be58b
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                10119               10099               0                   19:09               ?                   00:00:00            /bin/sh -c while true;do echo tml;sleep 5;done
root                10274               10119               0                   19:12               ?                   00:00:00            /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 5
[root@192 ~]#

3 查看容器的元数据

彻底了解容器镜像中的元数据:docker inspect 容器ID

4 进入当前正在运行的容器

为通常我们的容器都是使用后台方式来运行的,有时需要进入容器修改配置,此时有两种方式:

  • 进入容器后开启一个新的终端,可以在里面操作
[root@192 ~]# docker exec -it c703b5b1911f /bin/bash
[root@192 ~]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@192 ~]# ps -ef      
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 03:31 ?        00:00:00 /bin/sh -c while true;do echo hi;sleep 5;done
root       279     0  0 03:54 pts/0    00:00:00 /bin/bash
root       315     1  0 03:56 ?        00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 5
root       316   279  0 03:56 pts/0    00:00:00 ps -ef
  • 进入容器正在执行的终端,不会启动新的进程
[root@192 ~]# docker attach c703b5b1911f

5 容器-宿主机拷贝命令

#拷贝容器的文件到主机中
docker cp 容器id:容器内路径  目的主机路径
#拷贝宿主机的文件到容器中
docker cp 目的主机路径 容器id:容器内路径

执行命令如下,将容器文件拷贝到宿主机

[root@192 ~]# docker exec -it c2a9905be58b /bin/bash
[root@192 ~]# cd home
[root@192 ~]# ls
#touch 新建文件
[root@192 ~]# touch test.java
[root@192 ~]# ls
test.java
[root@192 ~]# exit
exit
[root@192 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
c2a9905be58b   centos    "/bin/sh -c 'while t…"   35 minutes ago   Up 35 minutes             pedantic_banach
[root@192 ~]# docker cp c2a9905be58b:/home/test.java /home
[root@192 ~]# ls /home
test.java  tml-1

总结一下

以上所有的命令可以通过这样一个命令图来描述:

Docker仓库的概念有点像Maven【Jar包托管仓库】,GitHub【代码托管仓库】,是一个镜像托管仓库。本篇Blog详细学习介绍了如何下载安装Docker,以及如何进行镜像加速,了解了Docker基本的运行流程,通过基础命令、镜像命令、容器命令和日志命令等Docker常用命令贯穿了一遍Docker的使用过程,真正体会了Docker的用法。接下来通过对原理的学习来进一步加深对Docker的理解吧!

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。 &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
相关文章
|
10天前
|
存储 监控 安全
|
4天前
|
Prometheus 监控 Cloud Native
基于Docker安装Grafana和Prometheus
Grafana 是一款用 Go 语言开发的开源数据可视化工具,支持数据监控和统计,并具备告警功能。通过 Docker 部署 Grafana 和 Prometheus,可实现系统数据的采集、展示和告警。默认登录用户名和密码均为 admin。配置 Prometheus 数据源后,可导入主机监控模板(ID 8919)进行数据展示。
32 2
|
6天前
|
安全 Linux Shell
docker运行centos提示Operation not permitted
通过上述步骤,可以有效排查和解决在Docker中运行CentOS容器时遇到的"Operation not permitted"错误。这些措施涵盖了从权限配置、安全策略到容器运行参数的各个方面,确保在不同环境和使用场景下都能顺利运行容器。如果你需要进一步优化和管理你的Docker环境
12 3
|
7天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
22 2
|
8天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
16 3
|
10天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
105 2
|
14天前
|
存储 Docker 容器
docker中挂载数据卷到容器
【10月更文挑战第12天】
41 5
|
2天前
|
Docker 容器
docker 修改容器内的系统时间
【10月更文挑战第27天】docker 修改容器内的系统时间
47 2
|
8天前
|
Web App开发 iOS开发 Docker
Docker 容器的日志
【10月更文挑战第31天】
19 5
|
8天前
|
存储 缓存 Docker
docker中挂载数据卷到容器
【10月更文挑战第16天】
17 2