docker常用命令

备注:用vagrant创建的linux环境
####docker简介

什么是docker?
基于镜像启动容器,容器之间相互隔离


卸载docker

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

安装docker需要依赖的一些包

sudo yum install -y yum-utils
device-mapper-persistent-data
lvm2

告诉linux,docker去哪里安装

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

安装docker

sudo yum install docker-ce docker-ce-cli containerd.io

检查docker安装是否成功

docker -v

启动docker

sudo systemctl start docker

设置docker自启动-要不然每次都要执行上面的启动docker命令

sudo systemctl enable docker

设置docker镜像加速

不设置的话,docker下载镜像会从国外那个网站下载,设置后会从国内的阿里云那边加速,底下四个命令,分别执行

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“https://82m9ar63.mirror.aliyuncs.com”]
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

####docker中下载镜像

docker的镜像网站,docker hub
docker pull+文件名直接下载对应的镜像(这些镜像前提就是都要在docker hub中有)
比如docker pull redis(redis后面可以跟上:版本,比如docker pull redis:3.4指的就是下载redis3.4的版本,不指定版本的话默认下载的就是最新版本)

docker中下载mysql

docker pull mysql:5.7


创建实例并启动mysql:    
    
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
参数说明
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
    -d mysql:5.7  意思想相当于我们用这个名字的容器让其操作
    
    
    
docker中下载redis

docker pull redis

mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
    (为什么先创建个容器外部的redis.conf文件,因为如果不这样的话会有问题的,redis.conf现在在容器里是没有的,会随着运行而生成)
  
docker run -p 6379:6379 --name redis 
    -v /mydata/redis/data:/data \
	-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
	-d redis redis-server /etc/redis/redis.conf    

docker安装的容器随docker自启动设置

sudo docker update redis --restart always

####docker中查看容器

docker images.查看当前安装的docker下的所有容器,如果没有权限前面加上sudo docker images,如果每次加上太麻烦了,这时候我们可以切换用户,su root,切换root用户后,因为我们是用vagrant创建的虚拟机,所以密码也是vagrant

whoami:查看当前是哪个用户操作

docker ps,查看正在运行中的容器


每次 docker run。。。就会启动一个docker容器,而且容器和容器之间相互隔离

####进入指定的docker容器

进入交互模式:docker exec -it 安装的容器名(eg:mysql)/bin/bash
docker exec -it redis redis-cli 进redis的cli

这个模式下就相当于进入容器内部了,每个容器内部可以理解为一个小型的linux系统(目录结构基本一样和linux)
我们这时候一般用端口映射,就是linux的端口映射到docker的端口
因为每次都要进这个容器内部改东西,所以比较麻烦,比如改一些配置啊,查看日志啊。这时候一般用挂载形式,挂载一些常用的配置文件啊,日志啊,到我们的linux里面,我们在linux里面的挂载内容修改后直接对docker中安装的文件生效,docker中安装的软件运行产生的日志我们linux对应挂载的目录中也可以查看的到

####通过vagrant下载的虚拟机命令的使用

vagrant up启动虚拟机
vagrant ssh连接虚拟机用vagrant用户,切换用户用su root(切换为root用户)

####改完配置后重启

docker重启服务命令:每次改完配置后尽量都重启一下
docker restart +重启的服务名(eg:redis)

####安装redis后开启持久化

redis安装上后默认是存数据到内存的,也就是没有开启持久化的,我们要给他开启的话就是按照图片中说的创建了后,挂载了后,我们修改linux服务器的redis.conf文件,里面加上一句话
appendonly yes,开启aof持久化模式

你可能感兴趣的:(java,java,idea,spring,boot)