Docker基础教程

Docker教程

1.大纲

1-1大纲

2.简介

2-1虚拟化含义

2-2Docker含义

2-3Docker优点

2-4Docker优点

2-5Docker与虚拟机的比较

2-6

2-7Docker组件

2-8镜像

2-9Docker容器

2-10

地址:https://hub.docker.com/

2-11Website

3.Docker安装

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

3-1

3-2

3-3设置Docker镜像

######################################################
#安装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镜像相关命令

4-1

4-2

4-3

###################################
#镜像相关命令
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容器相关命令

4-4

4-5create and start dockers

4-6

4-7

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部署

9-1Elasticsearch 部署

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.迁移与备份

11-1

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

12-1

基础镜像:操作级别的镜像,e.g. CentOS

新的镜像 : 在CentOS中安装了jdk,形成新的镜像

12-2常用命令

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私有仓库

14-1

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插件

16-1

16-2

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

16-3

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

16-4

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

16-5打包

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.

posted @ 2021-11-01 22:10  不会写代码的花生  阅读(83)  评论(0)    收藏  举报