docker教程,docker新手教程,docker笔记,docker命令大全

docker命令

docker帮助命名

docker version   #查询版本号
docker info      #docker更加详细信息,包括镜像和容器的数量
docker 命令 --help #万能命令(帮助命令)

image-20211202180350721.png

镜像命令

docker images 列出docker的所有镜像

docker pull 镜像名(centos):版本 拉取一个镜像,先看本地有没有,没有就拉远程,不加版本号,默认latest最新的

docker rmi -f 镜像id 删除镜像id

容器命令

docker ps a 查看所有的容器命令

docker ps 查看已经启动的容器命令

docker start 容器id 启动一个已停止容器的命令

docker stop 容器id 停止一个容器的命令

docker restart 容器id 重启一个停止容器的命令

docker rm -f 容器id 删除容器

新建容器并启动

docker run 【可选参数】 images(镜像id)

#参数说明
--name="Name" 容器名字 tomcat01 tomcat02,用来区分容器
-d               后台方式运行
-it              使用交互方式运行,进入容器查看内容
-p              指定容器的端口 -p 8080:8080 主机和容器映射
    -p ip:主机端口:容器端口(常用)
    -p 主机端口:容器端口(常用)
    -p 容器端口
-P            随机指定端口

#从容器退回主机
exit

退出容器

exit #直接退出容器
ctrl + p + q #容不停止退出

进入容器

docker attach 容器id                            #进入容器内部,但退出容器终端的话,会导致容器停止
docker exec   容器id                            #进去容器内部。但退出容器终端的话,不会导致容器停止

commit 镜像(提交镜像)

# 测试

容器数据卷

什么是容器数据区卷

将应用和环境打包成一个镜像

数据?如果数据都在容器中,那么我们容器删除,数据也会丢失,需要==数据可以持久化==

容器之间可以有一个数据共享的技术。docker容器产生的数据,可以同步到本地

这就所谓的卷,目录的挂载,将我们容器内的目录,挂载到liunx上面

image-20210913102629375.png

使用数据卷

方式一:直接使用命令来挂载 -v

docker run -it -v 主机目录:容器目录
# 启动起来时候我们可以通过docker inspect 容器id,看具体是怎么被挂载的

DokerFile

DokerFile网络

自定义网络

查看所有的docker网络

# docker network ls

网络模式

bridge:桥接docker(默认)(自己创建也使用bridge模式)

none:不配置网络

host:和宿主机共享网络

container:容器网络连接(用的少,局限很大)

测试

#我们直接启动的命令 --net bridge,而这个时默认存在的
docker run -d -P --name wzh -net bridge(默认)

# docker默认的,域名不能访问    ----link可以打通

# 自定义网络
# --driver bridge 哪个网络模式
# --subnet 192.168.0.0/16 子网
# --gateway 192.168.0.1 mynet
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

查看网络

# docker network inspect composer_default 查看当前下的composer_default

docker compose

安装

## 下载安装  
sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 赋权
sudo chmod +x /usr/local/bin/docker-compose
# 执行
docker-compose version #查看版本

体验

#执行运行dockercomposedocker-compose up
## 后台运行
docker-compose up -d
## 编译并运行
docker-compose up --build

[image-20211201160703466](docker%E5%91%BD%E4%BB%A4.assets/image-20211201160703466-16383460261811.png)

[root@localhost composer]# docker service lsError response from daemon: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again.

默认服务名 文件名_服务名_num .

多个服务器,集群,A B num副本数量

服务器redis服务=》4个副本

网络规则

使用docker-composer会创建一个网络规则

image-20211202100122579.pngimage-20211202162738278-16384336598631.png

composer自动维护网络,(项目中的内容都再同一个网络下。域名访问)

mysql:3306

10个容器实例:mysql

如果在同一个网络下,我们可以直接通过域名访问

停止docker-composer down 或者ctrl+c

image-20211202163120976.png

docker-compose

docker-compose。通过docker-compose编写yaml配置文件,通过compose一键启动所有服务和停止!

docker小结

1.docker镜像。run=》容器

2.DockerFile构建镜像(服务打包)

3.Docker-compose启动项目(编排,多个微服务、环境)

4.docker网络!

yaml规则

docker-compose.yaml 核心。!

#3层!
version:'' #核心
services: #服务
    服务1:web
      #服务配置
      images
      bulid
      network
      ----
    服务2:redis
        ---
    服务3:redis
        ----
#其他配置 网络/卷,全局规则
volumes:
networks:
configs:

docker Swarm

查看docker Swarm

查看docker swarm --help #帮助命令

image-20211203085734668.png

managers :工作管理节点(主节点)

workers:工作节点(子节点)

搭建集群

初始节点: docker swarn init

加入一个节点: docker swarm join

获取令牌

#获取令牌
docker swarm join-token manager
docker swarm join-token worker

查看节点信息:docker node ls

Raft协议

双主双从:

Raft协议:能保证大多数节点存活才可以用,只要》1,集群至少大于3台

描述:1.将docker1机器停止,宕机!双主,另外一个主节点也不能使用了

体会

弹性,扩容,集群

docker run告别

docker-compose up !启动一个项目(单机)

集群:swarm docker service

容器 =>服务

集群:高可用

容器=》服务

redis =》服务!-》副本

redis服务=》10个服务

体验:创建服务,动态扩展服务,动态更新服务

#创建服务(跟docker run 一样)
docker service create 镜像名 --name -p 8888:80
#查看服务镜像是否启动
docker service ps 镜像名
#查看所有启动服务的信息
docker service ls
#查看单个服务的详情信息
docker service inspect my-nighx
#创建几个副本(容器)
docekr service update --relicas 3 my-nginx(动态扩缩容)
docker service  scale my-nignx=5(动态扩缩容)
# 删除服务
docker service rm my-nginx
最后修改:2023 年 04 月 03 日 05 : 04 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论 取消回复