目录
docker概述
简单来说,docker是一种容器技术,它可以让你将应用程序和它所需要的环境
打包成一个独立的“容器”,这个容器可以在任何地方运行,而不需要担心环境的差异性和依赖关系。举个例子,就好比把一个装有软件和所有依赖项的电脑打包起来,然后在另一台电脑上直接运行,而不需要担心软件和环境的差异性,这样就可以方便地在不同的环境中部署和运行应用程序。
docker安装
docker安装官网点这里,我们使用yum安装,步骤如下。
卸载旧版本
如果安装新版本的docker,需要卸载旧版本的docker,但是存在于/var/lib/docker
里的镜像、卷、容器、网络等不会删除。
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装依赖包,设置存储库
在新的主机上首次安装Docker Engine时,需要设置docker仓库,之后,可以从仓库安装和更新docker。
yum install -y yum-utils
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装Docker Engine, containerd, and Docker Compose
安装 Docker 引擎、Docker 命令行工具、容器运行时和一些扩展插件,提供完整的 Docker 环境。
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
其中:
docker-ce
:Docker 社区版,包括 Docker 引擎和一些命令行工具。
docker-ce-cli
:Docker 命令行工具,用于管理 Docker 容器和镜像。
containerd.io
:Docker 引擎使用的容器运行时。
docker-buildx-plugin
:Docker 多平台构建插件,用于在不同的 CPU 架构和操作系统上构建 Docker 镜像。
docker-compose-plugin
:Docker Compose 插件,用于管理多个 Docker 容器的编排和部署。
检查是否安装成功
[root@shengxia containers]# docker --version
Docker version 23.0.3, build 3e7cbfd
启动
正常启动
systemctl start docker
开机启动
systemctl enable docker
容器启动示例
启动一个nginx服务器
使用docker run
命令启动一个docker容器,运行nginx服务器,如下所示
[root@shengxia ~]# docker run -d -p 8090:80 --name shengxia-nginx nginx
其中
docker run
:启动一个新的容器。
-d
:以后台模式运行容器。
-p 8090:80
:将主机的 8090 端口映射到容器的 80 端口。
--name shengxia-nginx
:为容器指定一个名称
nginx
:要运行的镜像名称,这里是 Nginx 服务器的官方镜像。
在浏览器输入ip地址和端口号,如果出现以下图片,则说明容器启动成功。
启动一个mysql服务器
使用docker run
命令启动一个docker容器,运行mysql服务器,如下所示
[root@shengxia ~]# docker run -d --name shengxia-mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD='密码' mysql:5.7.39
其中:
docker run
:启动一个新的容器。
-d
:以后台模式运行容器。
-p 3307:3306
:将主机的端口 3307 映射到容器的 3306 端口。
--name shengxia-mysql
:为容器指定一个名称
-e MYSQL_ROOT_PASSWORD='密码'
: 设置mysql服务器的密码
mysql:5.7.39
:要运行的镜像名称,这里是 mysql 服务器的5.7.39版本的镜像。
在容器内执行命令,开启一个终端
[root@shengxia ~]# docker exec -it shengxia-mysql bash
访问mysql
bash-4.2# mysql -uroot -p'密码'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.39 MySQL Community Server (GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
新建数据库
mysql> create database shengxia;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| shengxia |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql>
主机连接容器的mysql
新建一个user表,往表里插入数据
insert into shengxia.user (id,userName,userSex,userPhone) values (2,'xiaoxia','male','123456789');
mysql容器查看数据
mysql> select * from user where id=2;
+----+----------+---------+-----------+
| id | userName | userSex | userPhone |
+----+----------+---------+-----------+
| 2 | xiaoxia | male | 123456789 |
+----+----------+---------+-----------+
1 row in set (0.00 sec)
mysql>