Docker-compose安装及使用

一、安装

https://docs.docker.com/engine/install/centos/

1.1 Docker安装

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 https://download.docker.com/linux/centos/docker-ce.repo

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

systemctl start docker
systemctl enable docker
docker -v
Docker version 20.10.14, build a224086

1.2 Docker-compose安装

curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose
docker-compose -v                    
docker-compose version 1.28.6, build 5db8d86f

二、常用命令

2.1 Docker基础命令

docker exec –it 镜像 /bin/bash 进入容器
docker logs 容器id 查看容器运行日志
docker version 显示 Docker 版本和信息
docker info 输出docker应用的信息
docker inspect 检查 task 或 container
docker swarm命令
docker swarm leave –force 从管理端关闭 swarm 的一个节点
docker swarm init
docker swarm join –-token :2377
docker pull 镜像

2.2 Docker 镜像

docker run hello-world
docker build -t friendlyhello . 使用当前目录下的 Dockerfile 创建镜像
docker run -p 4000:80 friendlyhello 运行镜像 “friendlyname” mapping port 4000 to 80
docker run -d -p 4000:80 friendlyhello 后台运行镜像,detached 模式
docker login 用 Docker 凭证在当前 CLI 会话中登录
docker tag username/repository:tag 给要上传到 registry 的镜像打标记
docker push username/repository:tag 将已经打标记的镜像上传到 registry
docker run username/repository:tag 从 registry 运行镜像

2.3 docker清理

docker image prune 命令可以清理未使用的镜像。通过 -a 标志可以删除没有被已有容器使用的所有镜像,默认情况下,系统会提示是否继续。要绕过提示,请使用 -f 或 –force 标志。
$ docker image prune -a –filter “until=24h”
下面的命令只会删除没有 keep 标签的卷: $ docker volume prune –filter “label!=keep”
下面的命令只会删除 24 小时前创建的网络: $ docker network prune –filter “until=24h”
docker system prune 命令是修剪镜像、容器和网络的快捷方式

2.4 Docker之image

docker image ls
docker image ls -a # 列出所有镜像
docker image rm # 删除指定镜像
docker image rm $(docker image ls -a -q) # 删除所有镜像

2.5 Docker之container

docker container ls 列出 Docker 容器(运行中,所有的,quit 模式下所有的)
docker container ls –all # 列出所有的容器,包括不运行的
docker container ls -a
docker container ls -a –q
docker container stop # 友好的关闭指定容器
docker container kill # 强制关闭指定容器
docker container rm # 删除指定容器
docker container rm $(docker container ls -a -q) # 删除所有容器
docker container –help
docker的service命令
docker service ls # 列出运行的、关联到应用的 service
docker service ps # 列出关联到应用的任务 task
docker的stack命令
docker stack ls # 列出 stacks 或应用
docker stack deploy -c # 运行指定的 Compose 文件
docker stack rm # 关闭应用
docker-machine命令
docker-machine create –driver virtualbox myvm1 # 创建虚拟机(Mac, Win7, Linux)
docker-machine create -d hyperv –hyperv-virtual-switch “myswitch” myvm1 # Win10
docker-machine env myvm1 # 查看节点基本信息
docker-machine ssh myvm1 “docker node ls” # 列出 swarm 中的节点
docker-machine ssh myvm1 “docker node inspect ” # 检查节点
docker-machine ssh myvm1 “docker swarm join-token -q worker” # 查看加入 swarm 的 token
docker-machine ssh myvm1 # 打开虚拟机的 SSH 会话,”exit” 退出
docker node ls # 在 swarm manager 登录后,列出 swarm 中的节点
docker-machine ssh myvm2 “docker swarm leave” # 使 worker 退出 swarm
docker-machine ssh myvm1 “docker swarm leave -f” # 使 master 退出 swarm,关闭 swarm
docker-machine ls # 列出虚拟机,星号 表明当前会话在与哪台虚拟机交流
docker-machine start myvm1 # 重启停止运行的虚拟机

2.6 docker-compose命令

docker-compose up -d nginx 构建建启动nignx容器
docker-compose exec nginx bash 登录到nginx容器中
docker-compose down 删除所有nginx容器,镜像
docker-compose ps 显示所有容器
docker-compose restart nginx 重新启动nginx容器
docker-compose run –no-deps –rm php-fpm php -v 在php-fpm中不启动关联容器,并容器执行php -v 执行完成后删除容器
docker-compose build nginx 构建镜像 。
docker-compose build –no-cache nginx 不带缓存的构建。
docker-compose logs nginx 查看nginx的日志
docker-compose logs -f nginx 查看nginx的实时日志
docker-compose config -q 验证(docker-compose.yml)文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息。
docker-compose events –json nginx 以json的形式输出nginx的docker日志
docker-compose pause nginx 暂停nignx容器
docker-compose unpause nginx 恢复ningx容器
docker-compose rm nginx 删除容器(删除前必须关闭容器)
docker-compose stop nginx 停止nignx容器
docker-compose start nginx 启动nignx容器

2.7 常用

docker-compose top 显示正在运行的进程:

docker-compose up -d –build –remove-orphan 启动服务容器

-d 在后台运行服务容器
–build 在启动容器前构建服务镜像
–remove-orphans 删除服务中没有在compose文件中定义的容器

docker-compose ps 列出项目中目前的所有容器

docker-compose stop|start|restart|pause|unpause 停止|启动|重启|暂停|恢复暂停

docker-compose down –remove-orphans 停止和删除容器、网络、卷、镜像

–remove-orphans,删除服务中没有在compose中定义的容器

docker-compose logs 查看服务容器的输出。

docker-compose exec dms_cron bash 进入容器

发表回复