一.docker是什么?
Docker是一种轻量级、可移植、自管理的容器技术,它改变了传统的应用部署方式,提高了应用的可移植性、可伸缩性和可管理性,成为了现代云计算和微服务架构的重要组成部分。
Docker主要包括:
镜像(image):镜像就是一个模块,用来创建docker容器,一个模板可以创建多个容器。
容器(container):容器是镜像创建的运行实例,docker使用容器来运行服务或者应用,程序或者服务都是运行在容器中。
仓库(repository):集中存放镜像的厂所。
二.docker的安装
1. 安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
该依赖需要在root用户下安装,切换 root用户可以使用 su密令,输入密码进行切换
2.添加docker的软件包源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
查看版本列表
yum list docker-ce --showduplicates | sort -r
3.安装Docker应用
yum install -y docker-ce --allowerasing
4.配置镜像源
添加和修改镜像源文件
vi /etc/docker/daemon.json
{
"registry-mirrors":["https://registry.docker-cn.com"]
}
5.启动docker服务
systemctl start docker
6.查看是否安装成功
docker version
出现docker版本信息表示安装成功!
7.使用helloworld示例
docker run hello-world
三:docker常用密令汇总
1.启动服务类
启动docker: systemctl start docker
停止docker: systemctl stop docker
重启docker: systemctl restart docker
查看docker状态: systemctl status docker
开机启动: systemctl enable docker
2.镜像密令
查看本机安装的镜像:docker images
搜索镜像:docker search 镜像名称
拉取镜像:docker pull 镜像名称
拉取指定版本的镜像:docker pull 镜像名称:镜像版本号
查看镜像/容器所占的空间:docker system df
删除镜像: docker rmi -f 镜像名称/镜像ID
删除多个镜像:docker rmi -f 镜像名1 镜像名2
删除全个镜像:docker rmi -f $(docker image -qa)
3.容器命令
启动交互式容器:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
这里是一些常用的选项:
-d
:后台运行容器并打印容器ID;
-i
:以交互模式运行容器,通常与 -t
同时使用;
-t
:分配一个伪终端,通常与 -i
同时使用;
--name
:为容器指定一个名称;
-p
:将容器端口发送到主机;
-v
:绑定挂载卷。
停止容器:docker stop 容器id/容器名称
强制停止容器:docker kill 容器ID/容器名称
启动已经停止的容器:docker start 容器ID/容器名称
重启容器:docker restart 容器ID/容器名称
删除停止的容器:docker rm 容器ID/容器名称
强制删除 docker rm -f 容器ID/容器名称
列出当前正在运行的所有容器:docker ps [OPTIONS]
OPTIONS说明(常用):
-a :列出当前所有正在运行的容器+历史上运行过的
-l :显示最近创建的容器。
-n :显示最近n个创建的容器。
-q :静默模式,只显示容器编号。
无参数:直接列出当前正在运行的所有容器
启动守护式容器: docker run -d 容器名
-d:指定容器的后台运行模式,有的容器可以指定后台运行,有的容器不可以。
查看运行中容器的日志:docker logs 容器ID
查看容器中运行的进程:docker top 容器ID
查看容器内部细节:docker inspect 容器ID
进入正在运行的容器并以命令行交互:docker exec -it 容器ID /bin/bash
exec 是在容器中打开新的终端,并且可以启动新的进程 用exit退出,不会导致容
器的停止。
重新进入容器:docker attach 容器ID/容器名称
attach 直接进入容器启动命令的终端,不会启动新的进程 用exit退出,会导致容
器的停止。
退出并停止容器:在容器中执行 exit
退出但不停止容器:在容器中操作 ctrl + p + q
容器导出当前主机:docker export 容器ID > 文件名.tar 默认导入到当前的文件目录下
容器导入主机的docker:cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
四:在docker容器中安装常用的软件
1.容器中安装jdk8
1.查询jdk8的镜像
docker search openjdk:8
2.下载镜像到本地
docker pull openjdk:8
3.查看镜像是否存在
docker images openjdk:8
4.运行容器
docker run --name myjdk openjdk:8
5.进入容器
docker exec -it 容器ID /bin/bash/
6.容器中查看jdk版本
java version
7.退出并容器:
exit
退出不关闭容器:
ctrl +p + q
2.容器中安装mysql
1.查询镜像
docker search mysql:8
2.下载镜像到本机
docker pull mysql:8
3.查看本机是否存在镜像
docker images mysql:8
4.运行容器并挂载数据到本机
docker run --name mysql8
-p 3306:3306
-v /usr/local/mysql/datadir:/var/lib/mysql
-v /usr/local/mysql/my.cnf/:/etc/my.cnf/
-e MYSQL_ROOT_PASSWORD=1234
-d mysql:8
本机数据挂载的位置:/usr/local/mysql/datadir
本机配置文件挂载位置:/usr/local/mysql/my.cnf
5.进入容器内
docker exec -it mysql8 /bin/bash
6.登录数据库
mysql -uroot -p 输入密码
修改认证方式,开启远程访问
ALTER USER root@'%' IDENTIFIED WITH mysql_native_password
BY '1234‘
flush privileges;
7.退出mysql
exit
8.退出关闭容器:
exit
退出不关闭容器:
ctrl +p + q
3.docker安装redis
1.查询docker
docker search redis
2.下载镜像到本地
docker pull redis
3.查看镜像是否存在
dokcer images redis
4.运行容器并挂载数据到本地
docker run
-- name redis
-p 6379:6379
-v /usr/local/redis/data:/data
-v /usr/local/redis/redis.conf:/etc/redis/redis.conf
-d redis redis-server /etc/redis/redis.conf
--appendonly yes
数据挂载位置: /usr/local/redis/data
配置文件挂载位置: /usr/local/redis/redis.conf
5.进入容器内
docker exec -it redis /bin/bash
6.退出关闭容器:
exit
退出不关闭容器:
ctrl +p + q
4.docker安装nginx