作者:狂神说Java 很棒的视频,有兴趣的可以去B站上学习
https://docs.docker.com/engine/install/centos/
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/centos/docker-ce.repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
==更新软件包==
yum makecache fast
yum install docker-ce docker-ce-cli containerd.io
systemctl start docker
##6、查看是否启动
docker version
##7、启动命令
docker run xxx
docker images
##9、卸载docker
1、卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
2、删除目录
rm -rf /var/lib/docker
1、sudo mkdir -p /etc/docker
2、sudo tee /etc/docker/daemon.json <<-'EOF' {
"registry-mirrors": ["https://to0u57db.mirror.aliyuncs.com"] }
3、EOF sudo systemctl daemon-reload
4、sudo systemctl restart docker
地 址 文 档 : < h t t p s : / / d o c s . d o c k e r . c o m / r e f e r e n c e / > 地址文档:
docker version # 显示docker的版本信息
docker info # 显示docker的系统信息 ,包括镜像和容器的数量
docker --help # 帮助命令
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest bf756fb1ae65 5 months ago 13.3kB
#解释
REPOSITORY #镜像仓库源
TAG #镜像的标签
IMAGE ID #镜像ID
CREATED #镜像的创建时间
SIZE #镜像的大小
# 可选项
docker images --help #帮助命令
-a, --all #列出所有镜像
--digests #可视化
-f, --filter filter #过滤
-q, --quiet #只显示镜像的ID
# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 9609 [OK]
mariadb MariaDB is a community-developed fork of MyS… 3493 [OK]
# 可选项 通过搜索来进行过滤
--filter=STARS=3000 #将搜索出来的镜像就是status大于3000的
dockerhub地址:https://hub.docker.com
#下载镜像 docker pull 镜像名:[:tag]
[root@AsenLinux ~]# docker pull mysql
Using default tag: latest #如果不写tag 默认就是latest(最新的)
latest: Pulling from library/mysql
8559a31e96f4: Pull complete
d51ce1c2e575: Pull complete
c2344adc4858: Pull complete
fcf3ceff18fc: Pull complete
16da0c38dc5b: Pull complete
b905d1797e97: Pull complete
4b50d1c6b05c: Pull complete
c75914a65ca2: Pull complete
1ae8042bdd09: Pull complete
453ac13c00a3: Pull complete
9e680cd72f08: Pull complete
a6b5dc864b6c: Pull complete
Digest: sha256:8b7b328a7ff6de46ef96bcf83af048cb00a1c86282bfca0cb119c84568b4caf6 #签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest #真实地址
#等价对比
docker pull mysql == docker.io/library/mysql:latest
#指定版本下载
# docker pull mysql:5.7
# docker rmi -f 9cfcce23593a (通过 IMAGE ID 删除,删除单个容器)
# docker rmi -f 容器id 容器id 容器id (通过 IMAGE ID 删除,删除多个容器)
# docker rmi -f $(docker images -qa) 删除全部容器
说明:有了镜像才可以创建容器,liunx,下载一个centos镜像测试**
# docker pull centos
docker run [可选参数] images
#参数说明
--name = "name" 容器名称。用来区分容器
-d 后台方式运行
-a 使用交互方式运行
-it 使用交互方式运行,进入查看内容
-p 指定容器端口 如:-p 8080:8080
-p ip: 主机端口:容器端口
-p 主机端口:容器端口(常用)
-p 容器端口
-p 随机指定容器端口
#demo 启动并进入容器
[root@AsenLinux ~]# docker run -it centos /bin/bash
#内部的centos
[root@fe1b3a0adfe2 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
#退出容器命令,从容器中退出主机
exit
# docker ps 命令
# docker ps 查看当前运行的容器
-a #列出当前运行的容器和历史
-n # 列出最近运行的容器
exit #退出容器并且停止
Ctrl +P+Q #容器不停止退出
docker rm 容器id #删除指定容器(不能删除正在运行的容器 如果强制的话 rm -f)
docker rm -f $(docker ps -aq) #删除所有的容器
docker ps -a -q|xargs docker rm #删除所有容器
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器
#docker run -d 镜像名:
[root@AsenLinux ~]# docker run -d centos
#问题 docker ps 发现启动后停止了
#常见的问题:docker 容器后台运行 ,就必须有个前台的进程,docker 发现没有应用 就会自动停止
#niginx 容器启动后没有应用调用服务 停止
# docker Logs -tf --tail 10 CONTAINER ID(值)
#docker top 容器id
# docker top 8523b51dc9d4
# docker inspect --help
# docker inspect 容器id
#我们通常使用后台方式运行 需要进入容器,修改一些配置
#命令 docker exec 进入容器后开启新的(正常)
docker exec -it 容器id bashShell
# docker attach 进入容器正在执行的终端,不会启动新的进程
docker attach 容器id
docker cp 容器id:/容器文件夹/文件 /主机目录
systemctl start docker #启动docker命令
docker version #查看docker是否启动
docker images #查看docker 下载 镜像
docker search 名称 #搜索镜像
docker pull 镜像名:[:tag] #下载镜像
docker rmi -f 9cfcce23593a (通过 IMAGE ID 删除,删除单个容器) #删除单个容器镜像
docker rmi -f 容器id 容器id 容器id (通过 IMAGE ID 删除,删除多个容器) # 删除多个容器镜像
docker rmi -f $(docker images -qa) #删除全部容器镜像
# docker ps 命令
# docker ps 查看当前运行的容器
-a #列出当前运行的容器和历史
-n # 列出最近运行的容器
exit #退出容器并且停止
Ctrl +P+Q #容器不停止退出
docker rm 容器id #删除指定容器(不能删除正在运行的容器 如果强制的话 rm -f)
docker rm -f $(docker ps -aq) #删除所有的容器
docker ps -a -q|xargs docker rm #删除所有容器
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器
docker Logs -tf --tail 10 CONTAINER ID(值) #查看容器日志命令
docker top 8523b51dc9d4 #查看容器中的进程信息 ps
docker inspect 容器id #查看镜像的元数据
docker exec -it 容器id bashShell #命令 docker exec 进入容器后开启新的(正常)
docker attach 容器id # docker attach 进入容器正在执行的终端,不会启动新的进程
docker cp 容器id:/容器文件夹/文件 /主机目录 #从容器内拷贝文件到主机上
docker stats # 查看内存状态
#官方的使用
docker run -it --rm tomcat:9.0 #用完及删除
#先下载在启动
#linux命令少,没有webapps 访问404 原因阿里云镜像,默认最小,把所有没用的东西删除掉
解决方案:
进入tomcat中拷贝webapps.dist
cd webapps.dist/
cp webapps.dist/* webapps
[root@AsenLinux home]# docker run -d --name nginx01 -p 80:80 nginx
# run --启动
# -d --后台运行
# --name 容器命名
# -p 宿主机端口和容器内部端口
curl localhost:80 访问内部端口
#进入容器
docker exec -it nginx01/bin/bash
#es暴露的端口较多
#es 占用内存较多
#es的数据一般需要 放置到安全目录 挂载
# --net somenetwork 网络配置
#启动elasticsearch
docker pull elasticsearch
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2
# 启动后占用内存较大,服务器卡
curl localhost:9200
口
curl localhost:80 访问内部端口
#进入容器
docker exec -it nginx01/bin/bash
# es+kibana安装
~~~shell
#es暴露的端口较多
#es 占用内存较多
#es的数据一般需要 放置到安全目录 挂载
# --net somenetwork 网络配置
#启动elasticsearch
docker pull elasticsearch
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2
# 启动后占用内存较大,服务器卡
curl localhost:9200