您现在的位置是:首页 >技术杂谈 >docker容器的介绍网站首页技术杂谈

docker容器的介绍

Claylpf 2024-10-15 00:01:03
简介docker容器的介绍

目录

docker介绍和安装

官方网站:Docker: Accelerated, Containerized Application Development

下载docker引擎地址:Install Docker Engine | Docker Documentation

安装步骤 

1、卸载原来安装过的docker软件,如果没有安装则可以不用卸载

2、安装yum相关的工具,下载docker-ce.repo文件

3、安装docker-ce软件

4、启动docker服务

5、设置docker服务开机启动

6、测试(安装nginx镜像)        

一、docker容器

二、docker镜像

来源:默认从docker官方的网站去下载

https://hub.docker.com/

安装mysql镜像

三、docker仓库


docker介绍和安装

虚拟化:virtualization : 模拟出来的,虚拟的,部署真实的

虚拟化技术:

        vmware:workstation  入门级的产品

        docker:容器技术的经典代表

        kubernetes:(k8s)它是管理容器运行时集群的软件

k8s是建立在docker之上的软件

docker和k8s都是使用go语言的软件

只要是与k8s相关的技术都叫做云原生相关的技术

容器在Linux系统里就是对应一个进程

容器就是运行镜像的地方,在背后就是起到一个进程来运行这个镜像

官方网站:Docker: Accelerated, Containerized Application Development

容器可以理解为一个虚拟机,虚拟机内是不是可以运行许多的软件

下载docker引擎地址:Install Docker Engine | Docker Documentation

安装步骤 

1、卸载原来安装过的docker软件,如果没有安装则可以不用卸载

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

2、安装yum相关的工具,下载docker-ce.repo文件

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

3、安装docker-ce软件

containerd engine 是容器引擎

docker 是一个容器管理的软件

docker-ce 是服务器端软件  server

docker-ce-cli 是客户端软件 client

docker-compose-plugin 是compose插件,用来批量启动很多容器,在单台机器上

containerd.io 是底层用来启动容器的

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

4、启动docker服务

查看docker版本

 sudo systemctl start docker

5、设置docker服务开机启动

docker 启动的每一个容器背后就是一个linux进程 

 docker镜像

6、测试(安装nginx镜像)        

下面我们先下载一个nginx的镜像,并对将其打开(设置nginx镜像的端口,名称等信息) 

docker run 是启动容器的命令

-d 表示在后台运行 daemon 守护进程

-p 8090:80 表示指定端口的映射, DNAT模式,访问本机的8090端口,会转发到docker容器的container的80端口去。

--name sc-nginx 是指定容器的名字

最后的nginx 表示的是镜像的名字(填写已经下载号的镜像)

查看启动的docker容器进程 (建议关闭防火墙,然后重启docker服务)

打开浏览器,查看nginx的网页

一、docker容器

是一个镜像的可运行的实例,可以使用 Docker REST API 或者 CLI 命令行工具来操作容器,容器的本质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。

二、docker镜像

镜像是打包好的软件 :程序代码、基础系统、依赖关系的软件包、系统库、工具

需要人为去制作。

是一个只读模板,带有创建 Docker 容器的说明,一般来说的,镜像会基于另外的一些基础镜像并加上一些额外的自定义功能来组成。比如,你可以构建一个基于 Centos 的镜像,然后在这个基础镜像上面安装一个 Nginx 服务器,这样就可以构成一个属于我们自己的镜像了。

来源:默认从docker官方的网站去下载

https://hub.docker.com/

因此,凡是你想的到的软件,都有一个镜像,我们直接启动镜像就可以了,获得这个软件

docker 容器启动软件,颠覆了我们传统的软件安装方式

docker info命令 :可以查看许多docker容器的信息,是整个docker容器信息的汇总

Dockerfile 是制作docker镜像的文件,可以理解为一个配方文件

安装mysql镜像

安装mysql5.7.39版本的镜像

查看docker镜像: 

 

启动mysql镜像:

如果我们的docker容器启动镜像的时候出现了问题:
我们需要查看docker 日志查找问题:(docker logs +序列号/镜像名称)

 docker 删除镜像        

 docker 删除容器

获取两个mysql容器,用来互相连接

[root@mysql ~]# docker run -d --name sc-mysql-1 -p 33060:3306 -e MYSQL_ROOT_PASSWORD='123456' mysql:5.7.35
ac7d2604419784772c11d000922d3e221cb22395f2ddcf5fefde8f7ec7bfa4bc
[root@mysql ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                   CREATED         STATUS         PORTS                                                    NAMES
ac7d26044197   mysql:5.7.35   "docker-entrypoint.s…"   5 seconds ago   Up 4 seconds   33060/tcp, 0.0.0.0:33060->3306/tcp, :::33060->3306/tcp   sc-mysql-1
6efbccb9090a   nginx          "/docker-entrypoint.…"   8 minutes ago   Up 8 minutes   0.0.0.0:8090->80/tcp, :::8090->80/tcp                    sc-nginx
[root@mysql ~]# docker run -d --name sc-mysql-2 -p 33061:3306 -e MYSQL_ROOT_PASSWORD='123456' mysql:5.7.35
f3d9f1f6a31b5937620282af8e3d2d87bd2acb849bba9f0c43f9ad1cf616be2d
[root@mysql ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS          PORTS                                                    NAMES
f3d9f1f6a31b   mysql:5.7.35   "docker-entrypoint.s…"   9 seconds ago    Up 8 seconds    33060/tcp, 0.0.0.0:33061->3306/tcp, :::33061->3306/tcp   sc-mysql-2
ac7d26044197   mysql:5.7.35   "docker-entrypoint.s…"   3 minutes ago    Up 3 minutes    33060/tcp, 0.0.0.0:33060->3306/tcp, :::33060->3306/tcp   sc-mysql-1
6efbccb9090a   nginx          "/docker-entrypoint.…"   11 minutes ago   Up 11 minutes   0.0.0.0:8090->80/tcp, :::8090->80/tcp                    sc-nginx
[root@mysql ~]# 

进入mysql容器里

docker exec 进入容器里面、执行命令 execute

-it 表示开启一个终端、交互式进入        

[root@mysql ~]# docker exec -it  sc-mysql-1 bash
root@ac7d26044197:/# 

登录mysql

使用Navcat远程连接mysql容器

三、docker仓库

就是集中存放镜像的地方(像是镜像的集市,可以下载别人制作的镜像)

官方仓库docker hub官网(https://hub.docker.com/)

registry 是用来存储 Docker 镜像的仓库,Docker Hub 是 Docker 官方提供的一个公共仓库,而且 Docker 默认也是从 Docker Hub 上查找镜像的,当然你也可以很方便的运行一个私有仓库,当我们使用 docker pull 或者 docker run 命令时,就会从我们配置的 Docker 镜像仓库中去拉取镜像,使用 docker push 命令时,会将我们构建的镜像推送到对应的镜像仓库中,registry 可以理解为用于镜像的 github 这样的托管服务。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。