ContOS|ContOS 7安装Docker使用及部署MySQL和Nginx
此文章采取狂神说Java
https://space.bilibili.com/95256449
Docker学习网址:
Docker官网:https://www.docker.com/
Docker中文官网:https://www.dockerchina.cn/
Docker菜鸟教程:https://www.runoob.com/docker/docker-tutorial.html
Docker的优势:
- 更高效的利用系统资源
- 更快速的启动时间
- 一致的环境
- 持续交付和部署
- 更轻松的迁移
- 更轻松的维护和扩展
Docker服务器与客户端 Docker是一个客户端-服务器(C/S)架构程序。Docker客户端只需要向Docker服务器或者守护进程发出请求,服务器或者守护进程将完成所有工作并返回结果。Docker提供了一个命令行工具Docker以及一整套RESTful API。你可以在同一个宿主机上运行Docker守护进程和客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程。
Docker镜像与容器 镜像是构建Docker的基石,用户基于镜像来运行自己的容器。镜像也是Docker生命周期中的“构建”部分。镜像是基于联合文件系统的一种层式结构,由一系列指令一步一步构建出来。例如:
- 添加一个文件
- 执行命令窗口
- 打开一个窗口
- 一个镜像格式
- 一些列标准操作
- 一个执行环境
Registry(注册中心) Docker用Registry来保存用户构建对象。Registry分为公共和私有两种,Docker公司运营公共的Registry叫做Docker Hub。用户可在Docker Hub注册账号,分享并保存自己的镜像(在Docker Hub下载镜像巨慢,可以自己构建私有的Registry)。
- https://hub.docker.com/
yum
包更新到最新
$ yum update
- 安装Docker,出现输入的界面都按
y
$ yum install docker
- 检测Docker安装是否成功并查看Docker版本
$ docker -v
Docker的启动与停止
# 启动docker
$ systemctl start docker
# 查看docker是否启动成功
$ systemctl status docker
# docker 帮助文档
$ docker help
# 停止docker(容器)
$ systemctl stop docker
# 开机默认启动Docker
$ systemctl enable docker
Docker常用命令 镜像相关命令
# 查看镜像
$ docker images
- REPOSITORY:镜像
- TAG:镜像标签
- IMAGE ID:镜像ID
- CREATED:镜像的创建日期(不是获取该镜像的日期)
- SIZE:镜像大小
搜索镜像
如果你需要从网络中查找需要的镜像
# docker search镜像名称
$ docker search nginx
- NAME:仓库名称
- DESCRIPTION:镜像描述
- STARS:用户评价,反应一个镜像的受欢迎程度
- OFFICIAL:是否官方
- AUTOMATED:自定构建,表示该镜像由Docker Hub自动构建流程创建的
# docker pull镜像名称
$ docker pull nginx
删除镜像
按镜像ID删除镜像
# docker rmi 镜像ID
[root@192 ~]# docker images
REPOSITORYTAGIMAGE IDCREATEDSIZE
docker.io/nginxlatestc919045c4c2b40 hours ago142 MB
[root@192 ~]# docker rmi c919045c4c2b
Untagged: docker.io/nginx:latest
Untagged:docker.io/nginx@sha256:1c13bc6de5dfca749c377974146ac05256791ca2fe1979fc8e8278bf0121d285
Deleted: sha256:c919045c4c2b0b0007c606e763ed2c830c7b1d038ce878a3c0d6f5b81e6ab80b
Deleted: sha256:397dbc5767fa9031bfbe1523c4f0de80ad7ce8103b8cc2b58e6f36554c7f93eb
Deleted: sha256:347cfffd04bb8392ba1999a911a3d9b5c2327a8b516a943d17965b41c88e1216
Deleted: sha256:1b611a5b7c5d88f05e9eedeec09ba67bb81821a18dd21c6a0644a2e5017ac524
Deleted: sha256:78dd14d2a308dfd875fc3baae9b8b2e1a15c7fbee828cdbdd8e55b18c64c6128
Deleted: sha256:f5d1b591ffdcdfd05874cf66cb351506c6ef683cb58d2883bde24819b5a4f37d
Deleted: sha256:1401df2b50d5de5a743b7bac3238ef3b7ce905ae39f54707b0ebb8eda3ab10bc
[root@192 ~]# docker images
REPOSITORYTAGIMAGE IDCREATEDSIZE
[root@192 ~]#
删除所有镜像
$ docker rmi `docker images -q`
容器相关命令 查看所有容器
$ docker ps -a
查看最后一次运行的容器
$ docker ps -l
查看停止的容器
$ docker ps -f status=exited
创建与启动容器 创建容器常用的参数说明
创建容器命令:
$ docker run
- -i:表示运行容器
- -t:表示容器启动后进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端
- --name:为创建的容器命名
- -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v 做多个目录活或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上
- -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)
- -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
$ docker run -it --name=容器名称 镜像名称:标签/bin/bash
这时我们通过ps命令查看,发现可以看到启动的容器,状态为启动状态
退出当前容器
$ exit
2.守护式创建容器
$ docker run -di --name=容器名称 镜像名称:标签
登录守护容器方式
$ docker exec -it nginx /bin/bash#镜像名称或者镜像ID
查看容器内容
$ ll#或者ls
启动容器:
$ docker start 容器名称或者容器ID
查看日志 docker logs [ID或者名字] 可以查看容器内部的日志内容
docker logs ID或者名字
文件拷贝 如果我们需要将文件拷贝到容器内可以使用cp命令
$ docker cp 需要拷贝的文件或目录 容器名称:容器目录
也可以将文件从容器内拷贝出来
$ docker cp 容器名称:容器目录 需要拷贝的文件或目录
查看容器IP地址 我们可以通过以下命令查看容器运行的各个数据
$ docker inspect 容器名称或者容器ID
也可以执行下面的命令直接输出IP地址
$ docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称或者ID
删除容器 删除镜像是rmi,删出容器是rm
$ docker rm 容器名称或者ID
镜像操作 mysql部署
1.查看可用MySQL版本
MsSQL镜像库地址:https://hub.docker.com/_/mysql?tab=tags
可以通过Sort by 查看其他版本的MySQL,默认是罪行版本 mysql:latest
还可以用 docker 命令来查看其他版本
$ docker search mysql
2.拉取 MySQL 镜像
拉取官方的最新版本的镜像
$ docker pull mysql:latest#:latest可以省略,官方默认latest
3.查看本地镜像
使用命令来查看是否已经安装了 mysql
$ docker images
4.创建守护方式
$ docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql
5.进入mysql容器
$ docker exec -it mysql /bin/bash
6.用mysql打开客户端
$ mysql -uroot -proot --default-character-set=utf-8
# 登录mysql
$ mysql -u root -p
7.打开操作
#用show databases打开
mysql> show databases;
+--------------------+
| Database|
+--------------------+
| information_schema |
| mysql|
| performance_schema |
| sys|
+--------------------+
4 rows in set (0.10 sec)
8.退出当前镜像
$ exit#或者Ctrl+D
9.停止当前镜像
$ docker stop 镜像名称或者镜像ID
Nginx部署
创建Nginx容器
$ docker rum -di --name=mysql -p 80:80 nginx
创建nginx的配置目录
$ docker cp nginx:etc/nginx/usr/local/mydata/nginx/
关闭容器
$ docker stop nginx
删除容器
$ docker rm nginx
【ContOS|ContOS 7安装Docker使用及部署MySQL和Nginx】通过容器挂载,挂在nginx
$ docker rum -di --name=nigin -p 80:80 -v /usr/local/mydata/conf/:/etc/nginxnginx
推荐阅读
- 在服务器的docker里|在服务器的docker里 装anacond3深度学习环境的全流程超基础
- 日常配置|基于虚拟机下的win7系统安装简记
- npm 直接安装 GitHub/GitLab 仓库代码及 npm link 本地调试
- linux安装tomcat
- 02|02 - 入门 & Nginx 服务 & Docker 概念【合集】
- docker desktop 在 windows11 上安装
- docker、k8s 面试总结
- [scp] 利用ssh进行文件互传
- 服务器|宝塔青龙面板 京东 xdd多容器一条龙安装教程
- Java|docker化你的java应用(上)