Docker相关知识与命令

 

安装docker,

1.先卸载机器之前的docker相关组件

sudo yum remove docker \
   docker-client \
  docker-client-latest \
  docker-common \
  docker-latest \
  docker-latest-logrotate \
  docker-logrotate \
  docker-engine

2.安装需要的包

sudo yum install -y yum-utils

3.设置国内阿里的镜像仓库
sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4.更新yum的软件包索引

yum makecache fast

4.安装docker相关组件    docke-ce 是社区版本 

sudo yum  -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin

 

5.启动Docker 引擎并设置开机自启

sudo systemctl start docker

sudo systemctl enable docker 

 

6.验证安装是否成功

docker run hello-world

如果一切正常,就是如下图

 

 

 

 

docker search  镜像名字    #搜索镜像

docker pull  镜像名字    #下载镜像

 

容器命令

docker run  【可选参数】 image

--name="Name”     容器名字

-d        后台方式运行 

-it        使用交互方式进行,进入容器查看内容

-p        指定容器的端口   -p 8080:8080      

      -p   主机端口:容器端口   (常用)

-P        随机指定端口

 

docker ps 命令

      #列出当前正在运行的容器

-a        #列出当前正在运行的的容器+带出历史运行过的容器

删除容器

docker rm   容器id           #删除指定的容器,不能删除正在运行的容器,如果要强制删除  rm -f

docker rm -f  $(docker ps -aq)   #删除所有的容器 

docker ps -a -q |xargs docker rm   #删除所有的容器

docker logs 容器id

-tf          #显示日志

--tail  number  #要显示的日志条数

docker inspect  容器id   #查看镜像的元数据

进入当前正在运行的容器

docker exec -it 容器id  bashshell         #进入容器后开启一个新的终端,可以在里面操作

docker attach  容器id         #进入容器正在运行的终端,不会启动新的进程

docker   stats     #查看当前正在运行的容器使用cpu、内存等状态

docker top 容器id   #查看容器内部的运行进程

 

commit 镜像       

#命令和git原理类似

docker commit -m="提交的描述描述信息"  -a="作者"   容器id  目标镜像名: [TAG]

 

具名和匿名挂载

-v  容器内路径                #匿名挂载

-v  卷名:容器内路径           #具名挂载

-v  /宿主机路径::容器内路径     #指定路径挂载 

 

#匿名挂载   -v 容器内路径
 docker run -d -P --name nginx01 -v /etc/nginx nginx

root@# docker volume ls
DRIVER VOLUME NAME
local 8938cbf4bd600fead15f20c3fcd51cd25d8a3ce0fd4815494d1e94efb332c125

#具名挂载

docker run -d -P --name nginx04 -v tang-nginx:/etc/nginx nginx

root@# docker volume ls
DRIVER VOLUME NAME
local 8938cbf4bd600fead15f20c3fcd51cd25d8a3ce0fd4815494d1e94efb332c125
local tang-nginx

 

Dockerfile

 

 

 Dockerfile的指令

FROM          # 基础镜像,一切从这里开始构建

MAINTAINER    # 镜像是谁写的,姓名+邮箱

RUN        # 镜像构建的时候需要运行的命令

ADD        # 将宿主机目录下的文件拷贝进镜像且会自动处理URL和解压tar压缩包

WORKDIR    # 镜像的工作目录

VOLUME      # 挂载的目录

EXPOSE       # 保留端口配置

CMD        #  指定这个容器启动的时候要运行的命令;一个Dockerfile中可以有多个CMD指令,只有最后一个会生效,CMD会被docker run 之后的参数替换

ENTRYPOINT   #  类似于CMD指令,但是ENTRYPOINT不会被docker run后面的命令覆盖,

ONBUILD     # 当构建一个被继承 DockerFile 这个时候就会运行 ONBUILD 的指令。触发指令

COPY      # 类似ADD ,将我们文件拷贝到镜像中

ENV         # 构建的时候设置环境变量!

 

 小结:

 

 

虚悬镜像

 

  • 仓库名、标签都是<none>的镜像,俗称dangling image

查看    docker image ls -f  dangling=true

删除  docker image  prune

虚悬镜像已经失去存在的价值 , 可以删除

 

 

网络连通

docker network connect [OPTIONS] NETWORK CONTAINER

 

 

实战部署下Redis集群

 用shell批量安装6台redis  

docker network create redis --subnet 172.28.0.0/16

for port in $(seq 1 6);\
do \
mkdir -p /mydata/redis/node-${port}/conf
mkdir -p /mydata/redis/node-${port}/data
touch /mydata/redis/node-${port}/conf/redis.conf
cat << EOF >/mydata/redis/node-${port}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.28.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done

for port in $(seq 1 6);\
do \
docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port} \
-v /mydata/redis/node-${port}/data:/data \
-v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.28.0.1${port} redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
done

 

docker run -p 6371:6379 -p 16371:16379 --name redis-1 \
-v /mydata/redis/node-1/data:/data \
-v /mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.28.0.11 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

安装ok后 ,随机进入一个容器,

root@/# docker exec -it redis-1 /bin/sh
创建redis集群
/data # redis-cli --cluster create 172.28.0.11:6379 172.28.0.12:6379 172.28.0.13:6379 172.28.0.14:6379 172.28.0.15:6379 1
72.28.0.16:6379 --cluster-replicas 1

 

posted @ 2022-12-27 18:08  会bk的鱼  阅读(38)  评论(0编辑  收藏  举报