Docker基础教程
Docker教程
1.大纲

2.简介











3.Docker安装
官方安装教程:https://yeasy.gitbook.io/docker_practice/install/centos



######################################################
#安装Docker
1.更新yum包
yum update
2.安装yum-util
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.安装docker(-ce是社区版本;-ee为企业版)
yum -y install docker-ce
5.查看版本号
docker -v
#########################################################
#设置Docker镜像
mkdir -p /etc/docker
vim /etc/docker/daemon.json
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
####################################################
#Docker启动与停止
1.Docker start
systemctl start docker
2.check status
systemctl status docker
3.info
docker info
4.help documention
docker --help
5.stop
systemctl stop docker
6.开机启动docker
systemctl enable docker
7.restart
systemctl restart docker
4.常用命令
4.1镜像相关命令



###################################
#镜像相关命令
1.查看镜像
docker images
2.查找需要的镜像(在网络中查找;stars越多,打分越高;Official:是不是官方的;Automated:Docker-hub自动构建的)
docker search centos
3.拉取镜像(默认拉取最后一个版本;加上冒号:7,表示拉取CentOS7镜像)
docker pull centos:7
#从搜索结果列表选取下载
docker pull tutum/centos
4.删除镜像
docker rmi [镜像id]
#删除所有镜像
dcoker rmi 'docker images -q'
4.2容器相关命令




1.查看容器
docker ps
#查看正在运行的容器
docker ps -a
2.创建容器
docker run
######################################################
#交互式创建容器;进入容器后,无法对宿主机进行操作
docker run -it --name=mycentos centos:7 /bin/bash
#/bin/bash表示启动后以命令行的形式运行
#xshell新建窗口,查看运行的容器
docker ps
docker ps -a
#################################################
#守护式创建容器
docker run -di --name=mycentos2 centos:7
#登录容器
docker exec -it mycentos2 /bin/bash
#查看目录
ll
3.退出容器
exit
4.stop dockers
docker stop mycentos2
docker stop [docker id]
5.start docker
docker start [docker id]
6.文件拷贝
######################################
#从宿主机拷贝文件到容器
ll
docker cp [file name] [docker id]:/usr/local
#查看
docker exec -it [docker id] /bin/bash
cd /usr/local
ll
############################################
#将容器文件拷贝到宿主机
docker cp mycentos2:/usr/local/[file name] [new file name]
7.目录挂载
mkdir -p /usr/local/mydata
docker run -di -v /usr/local/mydata/:/usr/local/mydata --name mycentos3 centos:7
vim /usr/local/mydata/test.txt
hello world
docker exec -it mycentos3 /bin/bash
cd /usr/local/mydata
ll
8.在宿主机查看容器运行的数据
docker inspect --format='{{.NetworkSettings.IPAddress}}' mycentos3
9.删除容器
docker stop mycentos3
docker rm [docker id]
docker ps -a
5.Mysql部署
1.拉取Mysql镜像
docker pull mysql:5.7
2.创建容器
docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7
#-e 环境变量
3.连接容器
docker exec -it mysql /bin/bash
4.登录mysql
mysql -uroot -proot --default-character-set=utf8
5.show databases;
6.通过Navicate访问容器
主机:宿主机地址:192.168.32.102
端口:宿主机端口:3306
6.Nginx部署
1.拉取镜像
docker pull nginx
2.创建容器
docker run -di --name=nginx -p 80:80 nginx
3.访问nginx
192.168.32.100:80
4.目录挂载
#两种方法
#(1)找到Nginx的配置目录,并上传到宿主机上,实现挂载
docker run -di --name=nginx1 -p 80:80 -v /usr/local/mydata/conf/:/etc/nginx nginx
#(2)使用cp命令,将容器中Nginx配置好的目录拷贝到宿主机
docker cp nginx:/etc/nginx /usr/local/mydata/nginx
cd /usr/local/mydata
#将名称nginx改为conf
mv nginx conf
cd conf
7.Redis部署
docker pull redis
docker run -di --name=redis -p 6379:6379 redis
#Redis客户端连接
地址:机地址:192.168.32.100
port:6379
#配置文件
8.RabbitMQ部署
docker pull rabbitmq:3.7.12
docker run -di --name=rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:3.7.12
docker exec -it rabbitmq /bin/bash
#启动rabbitmq 的UI插件
rabbitmq-plugins enable rabbitmq_management
#访问
192.168.32.100:15672
账户密码都是guest
9.Elasticsearch部署

docker pull elasticsearch:7.5.0
#修改虚拟内存区域大小,否则会引文过小而无法启动
sysctl -w vm.max_map_count=262144
#创建容器
docker run -di --name=rabbitmq 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "cluster.name=elasticsearch" -v /usr/local/mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins elsticsearch:7.5.0
#进入容器
docker exec -it elasticsearch /bin/bash
#安装分词器
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.5.0/elasticsearch-analysis-ik-7.5.0.zip
#重新启动容器
docker restart elasticsearch
#页面访问
192.168.32.100:9200
10.Zookeeper部署(注册中心)
docker pull zookeeper:3.4.13
docker run -di --name=zookeeper -p 2181:2181 zookeeper
11.迁移与备份

1.容器保存为镜像
#myredis是新镜像;redis是现有镜像
docker ps -a
docker commit redis myredis
#创建新容器
docker run -di --name=myredis myredis
2.镜像备份
#output表示输出的意思;将myredis镜像打包
docker save -o myredis.tar myredis
ll
3.镜像恢复与迁移
docker ps -a
docker load -i myredis.tar
docker images
docker run -di --name=myredis myredis
12.Dockerfile

基础镜像:操作级别的镜像,e.g. CentOS
新的镜像 : 在CentOS中安装了jdk,形成新的镜像

13.Dockerfile构建jdk1.8镜像
mkdir -p /usr/local/dockerjdk8
ll
#移动jdk.tar包到dockerjdk目录下
mv jdk-8u202-linux-x64.tar.gz /usr/local/dockerjdk8
#编辑Dockerfile
cd /usr/local/dockerjdk8
vim Dockerfile
#指定基础镜像
FROM centos:7
#指定创建者信息
MAINTAINER peanut
#切换工作目录,放在usr下面
WORKDIR /usr
#创建一个目录
RUN mkdir /usr/local/java
#拷贝jdk.tar包
ADD jdk-8u202-linux-x64.tar.gz /usr/local/java
#环境变量配置
ENV JAVA_HOME /usr/local/java/jdk1.8.0_202
ENV PATH $JAVA_HOME/bin:$PATH
ll
#当前目录有两个文件:Dockerfile;jdk.tar.gz
#构建镜像;-t:镜像名字;.:当前目录
docker build -t='jdk1.8' .
#check images
docker images
14.Docker私有仓库

1.拉取私有仓库镜像
docker pull registry
2.启动容器
docker run -di --name=registry -p 5000:5000 registry
3.访问
192.168.32.100:5000/v2/_catalog
4.设置信任私有仓库
vim /etc/docker/daemon.json
#已有内容,添加一个,
,
{
"insecure-registries":["192.168.32.100:5000"]
}
5.重新启动docker
systemctl restart docker
6.查看正在运行的容器
docker ps -a
docker ps
7.重新启动容器
docker start registry
docker ps
8.刷新192.168.32.100:5000/v2/_catalog
15.Docker私有仓库上传镜像
#给当前镜像打一个标签
docker tag jdk1.8 192.168.32.100:5000/jdk1.8
#查看镜像:多了一个相同id的镜像
docker ps
#上传镜像
docker push 192.168.32.100:5000/jdk1.8
#网页查看
http://192.168.32.100:5000/v2/_catalog
#其它服务器下载使用;先配置Docker,再信任私有仓库
16.DockerMaven插件


1.修改宿主机的 docker配置,让其可以远程访问
vim /lib/systemd/system/docker.service
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
#Docker开放2375端口

#刷新配置
systemctl daemon-reload
#重启docker
systemctl restart docker
#启动私有仓库容器
docker start registry
docker ps
#docker-maven plugin

maven-plugin操作流程
1.将项目打包成一个jar包
2.然后把项目jar包打包成镜像
3.最后将镜像上传至docker私有仓库
4.去docker通过镜像创建容器运行

1.查看镜像
docker images
2.运行容器
docker run -di --name=test -p 7070:7070 test
3.查看网页
192.168.32.100:7070/index
参考
[1]Docker教程视频(适合docker 0基础,Docker初学入门)_哔哩哔哩_bilibili[EB/OL]. [2021-11-01]. https://www.bilibili.com/video/BV1Wv411w7KC.
2 Maven 插件之 docker-maven-plugin 的使用_哎_小羊的博客-CSDN博客[EB/OL]. [2021-11-01]. https://blog.csdn.net/aixiaoyang168/article/details/77453974.

浙公网安备 33010602011771号