Docker
-
简介
Docker是一个开源的应用容器引擎;是一个轻量级容器技术;
Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;
运行中的这个镜像称为容器,容器启动是非常快速的。
-
Docker核心概念
docker主机(Host)
:安装了Docker程序的机器(Docker直接安装在操作系统之上);docker客户端(Client)
:连接docker主机进行操作;docker仓库(Registry)
:用来保存各种打包好的软件镜像;docker镜像(Images)
:软件打包好的镜像;放在docker仓库中;docker容器(Container)
:镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用 -
使用Docker的步骤:
-
安装Docker的系统的linux内核高于3.10
uname -r
-
安装Docker
yum -y install docker
-
查看docker版本
docker -v
-
查看docker 状态启动 停止 和开机自启
service docker status //查看状态 service docker start //开启 service docker stop //停止 systemctl enable docker //docker 开机自启
1. docker 常用命令
-
镜像操作
操作 命令 说明 检索 docker search 关键字 eg:docker search redis 我们经常去docker hub上检索镜像的详细信息,如镜像的TAG。 拉取 docker pull 镜像名:tag :tag是可选的,tag表示标签,多为软件的版本,默认是latest 列表 docker images 查看所有本地镜像 删除 docker rmi image-id 删除指定的本地镜像 修改 /etc/docker/daemon.json ,写入如下内容(如果文件不存在请新建该文件)
vim /etc/docker/daemon.json # 内容: { "registry-mirrors":["http://hub-mirror.c.163.com"] }
-
重启docker 服务
service docker restart
-
下载选择具体的版本可以从https://hub.docker.com/ 中搜索
docker pull mysql:5.7.31
2.容器操作
软件镜像----运行镜像----产生一个容器
-
搜索镜像
docker search tomcat
-
拉取镜像
docker pull tomcat
-
根据镜像启动容器
docker run --name mytomcat -d tomcat:latest
–name:给容器起个名字
-d:后台启动,不加就是前端启动,然后你就只能开一个新的窗口连接,不然就望着黑乎乎的窗口,啥也干不了,Ctrl+C即可退出,当然,容器也会关闭 -
查看运行中的容器
docker ps
docker ps -a
查看所有的容器 -
停止运行中的容器
dacker stop 容器的id docker stop 容器的名称,就是--name给起的哪个名字
-
启动容器
docker start 容器Id或名字
-
删除一个容器
docker rm 容器id/名字
-
启动一个做了端口映射的tomcat
docker run -d -p 8888:8080 tomcat
-d :后台运行 -p: 将主机的端口映射到容器的一个端口 `主机端口(8888)`:`容器内部的端口(8080)
外界通过主机的8888端口就可以访问到tomcat,前提是8888端口开放
-
关闭防火墙
# 查看防火墙状态 service firewalld status # 关闭防火墙 service firewalld stop
-
查看容器日志
docker logs 容器id/名字
3.MySql
docker pull mysql:5.7.28
-
运行容器
docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.28
-
--name mysql
:容器的名字是mysql;MYSQL_ROOT_PASSWORD=root
:root用户的密码是root (必须指定)连接容器内mysql
在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:
- docker attach
- docker exec:推荐使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。
docker exec -it mysql bashCopy to clipboardErrorCopied
-i
: 交互式操作。-t
: 终端。mysql
: 名为mysql的 镜像。bash
:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 bash,也可以用/bin/bash
。连接上以后就可以正常使用mysql命令操作了
mysql -uroot -prootCopy to clipboardErrorCopied
直接使用端口映射更加方便
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.28
mysql其他命令
高级命令
docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag 把主机的、/my/custom文件夹挂载到 /etc/mysql/conf.d 文件夹里面改mysql的配置文件就只需要把mysql的配置文件放在/my/custom 下
ocker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci 指定mysql的一些参数 如果想查看可用选项的完整列表 docker run -it --rm mysql:tag --verbose --help
-