【Docker】docker安装和使用及学习相关命令

一、安装
  1. yum 更新到最新版本 yum update
  2. 安装需要的软件包yum install -y yum-utils device-mapper-persistent-data lvm2
  3. 设置yum源为阿里云yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  4. 安装dockeryum -y install docker-ce
  5. 设置ustc镜像
    mkdir -p /etc/docker
    vim /etc/docker/daemon.json
    然后输入以下json内容后保存并退出
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
  1. 启动docker和通知docker
systemctl start docker #启动
systemctl status docker #查看docker状态
systemctl stop docker #停止

#重启docker
systemctl restart docker

在这里插入图片描述

二、docker相关命令
1. 镜像相关命令
  1. 查看镜像
docker images
  1. 搜索镜像
docker search  名字   #如 docker search  centos。
  1. 下载镜像
docker push 名字  #如 docker push centos:7;若直接docker search centos,则是下载最新版本的
  1. 删除镜像
docker rmi 镜像ID  #如 docker rmi 8652b9f0cb4c

docker rmi 'docker images -q' #删除所有镜像
  1. 获取容器/镜像的元数据(ip)

#查看所有元信息
docker inspect 容器id 

#docker查看容器的网络ip
docker inspect 容器ID | grep IPAddress

#获取指定容器的ip
docker inspect --format '{{ .NetworkSettings.IPAddress }}' 68f0d84be6ad

#获取所有容器ip
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

2. 容器相关命令
  1. 查看正在运行的容器
docker ps
  1. 查看所有容器
docker ps -a
  1. 查看最后一次运行的容器
docker ps -l
  1. 查看停止的容器
docker ps -f status= exited
  1. 创建容器
  • -i表示运行容器
  • -t 表示容器启动后会进入其命令行
  • --name为创建的容器命名
  • -v表示目录映射关系,可以使用多个-v
  • -d创建一个守护式容器在后台运行,不会自动登录容器
  • -p表示端口映射,
#交互式创建
docker run -it --name=容器名称 镜像名称:标签/bin/bash  #如:docker run -it --name=mycentos centos:7 /bin/bash


#守护式创建
docker run -di --name=mycentos2 centos:7
# 运行该容器
docker exec -it mycentos2 /bin/bash
  1. 退出当前容器exit,后台还是运行的

  2. 停止容器docker stop 容器ID,如docker stop 8652b9f0cb4c

  3. 启动docker start 容器ID,重启docker restart 容器ID(或名字)

  4. 文件宿主机拷贝到其他容器docker cp 文件名 容器ID:目录,如docker cp myconfig.cfg 8652b9f0cb4c:/usr/local

  5. 其他容器文件拷贝到宿主机中如docker cp mycentos2:/usr/local/myconfig.cfg myconfig2.cfg

  6. 目录挂载,创建容器的时候,将宿主机的目录和容器内目录进行映射,可以映射端口

#创建容器 添加 -v 后面为宿主机目录容器:容器目录,若共享多级可能有提示权限不足,此时需要添加参数 --privileged=true 
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 cnetos:7
  1. 查看容器IP地址 docker inspect 容器ID,也可以直接输出IP地址docker inspect --fomat='{{.NetworkSettings.IPAddress}}' 容器ID
  2. 删除容器docker rm 容器ID,先把容器关掉才能删除
  3. 修改名称 docker rename 原来的名称(ID) 新名称
三、docker安装mysql、redis等
  1. mysql
#下载
docker pull mysql:5.6
#创建mysql容器
docker run -di --name=mysql56 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=612345 mysql:5.6
#运行mysql
docker exec -it mysql56 /bin/bash
#登录mysql
mysql -uroot -p612345 --default-character-set=utf8
  1. redis
#下载
docker pull redis
#创建redis容器
docker run -di --name=redis -p 6379:6379 redis



  1. rabbitmq
#下载
docker pull rabbitmq:3.7.12

#创建rabbitmq容器,并添加目录挂载,注意挂载多种目录加参数 --privileged=true  防止权限。
docker run -di --name=rabbitmq  -p 5671:5671  -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15672:15672 -p 15671:15671   -v /usr/local/mydata/rabbitmq/etc:/etc/rabbitmq -v /usr/local/mydata/rabbitmq/lib:/var/lib/rabbitmq   -v /usr/local/mydata/rabbitmq/log:/var/log/rabbitmq     --privileged=true    rabbitmq:3.7.12

#docker run -di --name=rabbitmq -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15672:15672 -p 15671:15671 rabbitmq:3.7.12


#进入rabbitmq
docker exec -it rabbitmq /bin/bash

#安装rebbitmq插件
rabbitmq-plugins enable rabbitmq_management

#让rabbitmq开机启动
docker update rabbitmq  --restart=always

  1. elasticsearch
#查看镜像
docker search elasticsearch

#下载
docker pull elasticsearch:7.10.1

#更改配置
sysctl -w vm.max_map_count=262144

#创建容器
docker run -di --name=elasticsearch -p 9200:9200 -e "discovery.type=single-node" -e "cluster.name=elasticsearch" -v /usr/local/mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins elasticsearch:7.10.1

#启动
docker exec -it elasticsearch /bin/bash

#安装分词器,注意版本要和elasticsearch对应  (如果安装失败重启elasticsearch容器再重新安装)
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.1/elasticsearch-analysis-ik-7.10.1.zip

#安装好分词器后重启elasticsearch
docker restart elasticsearch

  1. 安装nginx
#下载
docker pull ngnix

#运行
docker run -di --name=nginx -p 80:80 nginx

#创建nginx目录后,挂载到该目录
docker cp nginx:/etc/nginx /usr/local/mydata/nginx/

#停止nginx
docker stop nginx

# 删除容器
docker rm nginx

#重新挂载运行nginx容器
#docker run -di --name=nginx -p 80:80 -v /usr/local/mydata/nginx/nginx:/etc/nginx nginx
docker run -di --name=nginx -p 80:80  -v /usr/local/mydata/nginx/html:/usr/share/nginx/html -v /usr/local/mydata/nginx/logs:/var/log/nginx -v /usr/local/mydata/nginx/conf:/etc/nginx nginx

  1. 安装kibana
#下载
docker pull kibana:7.10.1

#创建目录
mkdir -p /usr/local/mydata/kibana/config

#编辑配置
vim /usr/local/mydata/kibana/config/kibana.yml

server.port: 5601 #bana的映射端口
server.host: "0.0.0.0" #网关地址
##Kibana实例对外展示的名称
server.name: "kibana"
##Elasticsearch的集群地址,也就是说所有的集群IP
#elasticsearch.hosts: ["http://111.231.110.177:9200","http://111.231.110.177:9201","http://111.231.110.177:9202"]
elasticsearch.hosts: ["http://IP:9200"]
i18n.locale: "zh-CN" ##设置页面语言,中文使用zh-CN,英文使用en
xpack.monitoring.ui.container.elasticsearch.enabled: true

# wq保存并退出

#创建并启动容器
docker run -d  --name=kibana  --restart=always -p 5601:5601 -v  /usr/local/mydata/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.10.1

#记得开放端口5601

  1. 安装logstash
 #下载
 docker pull logstash:7.10.1
 ##运行
docker run -d --name=logstash logstash:7.10.1 -v  /usr/local/mydata/logstash/config:/usr/share/logstash/config  -v /usr/local/mydata/logstash/data :/usr/share/logstash/data -v /usr/local/mydata/logstash/pipeline:/usr/share/logstash/pipeline 
## COPY配置文件至本地
mkdir -p /usr/local/mydata/logstash
docker cp logstash:/usr/share/logstash/config /usr/local/mydata/logstash/config/
docker cp logstash:/usr/share/logstash/data /usr/local/mydata/logstash/data/
docker cp logstash:/usr/share/logstash/pipeline /usr/local/mydata/logstash/pipeline/
chmod 777 -R /usr/local/mydata/logstash
## 移除容器
docker rmi logstash

  1. 安装Jenkins
docker pull jenkins/jenkins

docker run -di --name=jenkins -p 8080:8080 -v /usr/local/mydata/jenkins_home:/var/jenkins_home jenkins/jenkins


docker run -d -p 8888:8080 -p 50000:50000 -v /var/jenkins_mount:/var/jenkins_home -v /usr/local/java/jdk1.8/bin/java:/usr/local/java/jdk1.8/bin/java -v /usr/local/java/jdk1.8:/usr/local/java/jdk1.8 -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone --name jenkins jenkins/jenkins


-- ----指定jdk和maven
-- 
docker run -d -p 8080:8080 -p 50000:50000 -v /usr/local/mydata/jenkins_home:/var/jenkins_home -v /usr/local/java/jdk1.8.0_151/bin/java:/usr/local/java/jdk1.8/bin/java -v /usr/local/java/jdk1.8.0_151:/usr/local/java/jdk1.8 -v /etc/localtime:/etc/localtime  --name jenkins jenkins/jenkins

-- ----
docker logs jenkins -- 查看密码

3. 容器迁移和备份
  1. 容器保存为镜像
docker commit redis myredis
  1. 镜像备份。将镜像保存为tar文件
docker save -o myredis.tar myredis
  1. 镜像恢复和迁移
#首先删除myredis 镜像 然后执行恢复,参数 -i 输入文件
docker load -i myredis.tar
四、私有仓库
#下载私有镜像
docker pull registry

#创建容器
docker run -di --name=registry -p 5000:5000 registry

#打开vim /etc/docker/daemon.json,添加信任"insecure-registries":["主机:端口"]
vim /etc/docker/daemon.json,
然后添加json:"insecure-registries":["192.168.238.130:5000"]

#镜像上传搭配私有仓库
#打包贴标签
docker tag elasticsearch-back-copy 192.168.238.130:5000/elasticsearch-back-copy
#上传到私有仓库
docker push 192.168.238.130:5000/elasticsearch-back-copy

#其他服务器下载私有仓库的镜像。步骤:安装docker,安装私有仓库、修改/etc/docker/daemon.json配置让其信任,然后pull就可以下载了
五、DockerMaven插件

让docker自动部署

  1. 修改宿主机的docker,让其可以远程访问
vim /lib/systemd/system/docker.service

修改里面以ExecStart开头的行,修改为
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

#修改完后刷新
systemctl daemon-reload

#重启docker
systemctl restart docker

#启动私服
docker start registry

#最后自己的项目通过DockerMavend插件打包后在docker运行,接着在浏览器上访问就可以了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值