当前位置: 首页 > article >正文

Linux中部署Docker环境;Docker常用操作

一,部署Docker环境

官网手册:CentOS | Docker Docs

1.1、查看一下Linux内核版本

uname -r

要求3.10版本及以上。

2.2、卸载老版本docker,避免产生影响

如果服务器安装过docker,没有卸载再次安装会导致安装失败,首先要卸载老版本(咱们没安装过docker,可以不需要这个操作,不过可以试一下。)

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

1.3、升级 yum 和 配置源

yum工具可以安装软件,安装docker时需要更多工具,操作系统自带不够,所以要升级。

源是 安装软件时找的软件安装包,需要将docker的源(安装包)添加到yum中。

##执行第一个命令,给yum升个级

yum install -y yum-utils 

##执行的第二个命令  【一次不成功,多执行两次】 (国外的)

 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

#配置源也可以先换成下面的再执行命令2:

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

2.4、安装指定版本的docker

安装:20.10.8版本

#安装指定版本的[命令公式]:

yum install --setopt=obsoletes=0 docker-ce-<VERSION_STRING> docker-ce-selinux-<VERSION_STRING>.noarch

#具体安装命令:

yum install --setopt=obsoletes=0 docker-ce-20.10.8-3.el7 docker-ce-selinux-20.10.8-3.el7.noarch

2.5、安装成功

2.6、启动服务验证一下

# 执行命令1:启动docker服务
systemctl start docker

# docker开机自启
systemctl enable docker

# 运行hello-world程序(官方自带镜像)
docker run hello-world  

解决网址如下: Docker运行hello-world镜像失败或超时_unable to find image 'hello-world:latest' locally -CSDN博客

首先:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "https://do.nark.eu.org",
        "https://dc.j8.work",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
systemctl status docker

然后

docker info

最后

docker run hello-world

注:出错可能是网络原因,尝试多运行几次

二,Docker常用操作

操作汇总:

2.1、查看本地镜像

docker images

REPOSITORY:镜像的名字

TAG:镜像标签,可以通过标签指定版本号

IMAGE_ID:镜像的唯一标识

CREATED:创建镜像的时间

SIZE:镜像大小

2.2、用命令查指定镜像

docker search 镜像名称

2.3、拉取镜像

docker pull tomcat:8.0

2.4、查看容器

# 【查看当前正在运行的容器】
docker ps

# 【查看所有容器,包括运行中的和未启动的】
docker ps -a

CONTAINER_ID:容器的唯一标识

IMAGE:容器对应的镜像

COMMAND:容器启动执行的命令

CREATED:创建容器的时间

STATUS:容器的当前状态

PORT:容器的端口号

NAMES:容器的名字,自定义。名字不允许重复,无论容器的状态是运行还是停止。名字也是唯一的,操作容器时可以用container_id也可以用名字。

2.5、移除容器

先多启动几次tomcat镜像为记下来移除做准备:

# rm是移除容器
docker rm 容器id或名字

按照id移除时可以不把id写全,docker会根据输入模糊匹配,如果只匹配到一个,那么移除,匹配多个不做任何操作。

# rmi是移除镜像
docker rmi 镜像id或名字:[标签]

移除镜像时,id的规则也符合容器操作的规则,模糊匹配。 如果镜像对应的容器存在(正在运行),不能移除镜像,需要先把所有容器都移除才能移除镜像。

2.6、创建 容器

# docker run 自定义个名字 镜像名字或id:标签
# docker run tomcat8 tomcat:8.0
# tomcat启动还要添加其它指令,以保证可以正常访问到tomcat,并且不占用控制点,在后台运行

docker run -p 8080:8080 -d --name tomcat8 tomcat:8.0

run:第一次启动容器是要用run命令

-p:端口映射,将虚拟机的端口号映射到容器上(虚拟机端口号:容器端口号)

-d:后台运行

--name:给容器取个名字

2.7、启动Tomcat容器

# 启动 docker start 容器名称或id
docker start tomcat8

# 停止 docker stop 容器名称或id
docker stop tomcat8

# 重启 docker restart 容器名称或id
docker restart tomcat8

start和run的区别

  • run是在第一次启动时执行,准确来说是创建一个容器

  • start是启动已经存在的容器

  • start不需要想run一样写多个参数及配置,会自动按照run时的配置和命令启动

2.8、进入容器内

# 进入容器内部 docker exec -it 容器名称或id /bin/bash
docker exec -it tomcat8 /bin/bash

exec:进入容器的命令

-it:是由-i和-t组成的,-i是交互方式,-t是提供一个终端

/bin/bash:指定命令的路径和方式(就是该路径下有linux命令的可识别文件。)

2.9、Tomcat启动后404问题(无)

创建的Tomcat容器的webapps目录下可能没有ROOT工程,这样会导致访问时出现404问题,可以进入容器后,从webapps.dist目录下的ROOT工程复制到webapps中。(目前版本已经不存在404问题了)

2.10、退出容器+查看容器日志

退出容器可以用ctrl+d,也可以执行exit命令

docker日志查看

# docker logs 容器名字或id -f -n 数字
docker logs tomcat8 -f -n 10

-f:日志持续输出,会时时输出产生的日志

-n:输出倒数X条日志


http://www.kler.cn/a/321080.html

相关文章:

  • 图像深度与像素深度的辨析
  • C++中 ,new int(10),new int(),new int[10],new int[10]()
  • RabbitMQ 与 PHP Swoole 实现
  • Unity读取Json
  • 供应链管理、一件代发系统功能及源码分享 PHP+Mysql
  • 论文 | On Second Thought, Let’s Not Think Step by Step!
  • 三.python入门语法1
  • redis安装(以6.0.13为例)
  • 金融领域的人工智能——Palmyra-Fin 如何重新定义市场分析
  • 【解密 Kotlin 扩展函数】自定义函数(十二)
  • Java 编码系列:线程基础与最佳实践
  • TS系列(3):常用类型(详细)
  • 把握旅游新契机,开启旅游创业新征程
  • 【Springboot入门-自动配置】
  • 【Qualcomm】高通SNPE框架的使用 | 原始模型转换为量化的DLC文件 | 在Android的DSP端运行模型
  • filebeat采集挂载出来的/home/Logs下的日志过程
  • 数据库 - MySQL的事务
  • TikTok直播推流不精准该怎么办?跟IP有关系吗?
  • 【北京迅为】《STM32MP157开发板使用手册》-第四十三章 软件定时器实验
  • 基于SpringBoot的图书进销存管理系统【附源码】
  • 利用Spring Boot开发学生宿舍管理系统
  • 十一、SOA(SOA的具体设计模式)
  • 【中级通信工程师】终端与业务(三):电信业务
  • leetcode-10. 正则表达式匹配
  • element ui中当el-dialog需要做全屏时,.fullscreen样式修改问题
  • windows电脑git提交告警:LF will be replaced by CRLF the next time Git touches it