【Docker】docker | 命令 | 安装docker-compose | 卷 | 镜像存放位置 | volume | 清理空间

-9、docker磁盘空间沾满

docker system df
du -hs /var/lib/docker/
du -hs /var/lib/docker/volumes
docker system df -v
docker volume ls -qf dangling=true

注意: 做好数据备份,丢数据了;自行负责

说明1: 可以停止不用的容器

说明2: 日志清理

https://blog.51cto.com/u_16213711/11773039

~~

-8、拷贝镜像中的文件(镜像->宿主机)

1)命令

docker cp <容器ID或名称>:<容器内路径> <宿主机路径>

2)示例

docker cp mysql:/opt/tmp/c.sql /opt/tmp/c.sql

~~

-7、离线备份、打包下载、load(->tar)

1)下载镜像到本地

docker save -o jenkins.tar jenkinsci/blueocean:latest

说明1: 04540a0bb985为IMAGE ID

说明2: tar包会在所在目录,ls即可看到

~~

2)加载离线镜像tar包

docker load --input jenkins.tar

~~

-6、已启动镜像增加always重启

1)命令

docker container update --restart=always mysql5.7

说明: mysql5.7为容器名字或容器ID

~~

-5、删除镜像

1)删除

docker rmi

说明1: 后面跟镜像ID

说明2: 如果存在运行中的容器,则无法删除

~~

-4、根据前缀批量停止docker容器

1)批量停止k8s相关的服务

docker stop `docker ps -a | grep k8s | awk '{print $1}'`
docker stop `docker ps -a | grep kuboard | awk '{print $1}'`

指令翻译1: docker ps -a,查询所有容器

指令翻译2: grep k8s,筛选包括k8s所有容器

指令翻译3: awk ...,打印第一列,即容器ID;得到容器ID集合

指令翻译4: docker stop ``,根据筛选的容器ID集合,停止容器

~~

-3、查看latest对应的具体版本

docker image inspect wurstmeister/kafka:latest|grep -i version

-2、删除关闭的容器、无用的数据卷和网络,以及 dangling 镜像(在构建镜像时产生的 tag 为 none 的镜像,没有和任何其他有 tag 的镜像有关联)

1)命令

​docker system prune

删除操作都要慎重

2)其他删除

https://www.jb51.net/article/271875.htm

~~

-1、查看docker空间占用

docker system df

0、启动docker

systemctl start docker

1、查看容器

docker ps

2、进入容器

docker exec -it ${containerId} /bin/bash

3、退出容器

exit

4、停止容器

docker stop ${containerId}

5、删除容器

docker rm ${containerId}

6、启动创建容器

1)启动redis

sudo docker run -itd --privileged=true -p 192.168.0.2:16379:6379 -v /home/redis/data:/data -v /home/redis/conf/redis.conf:/etc/redis/redis.conf  --name redis --restart=always redis --requirepass 'redis123'

-itd:

-i: 以交互模式运行容器,通常与 -t 同时使用;

-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

-d: 后台运行容器,并返回容器ID;

-p: 指定端口映射,格式为:主机(宿主)端口:容器端口

-v: 绑定一个卷

--name: 为容器指定一个名称

--restart: 重启策略,always,在容器退出时总是重启容器

--privileged: 是否让docker 应用容器 获取宿主机root权限

2)启动jdk8

docker run -itd --name java d23bdf5b1b1b

 7、查看容器日志

sudo docker logs -f 5173b01d5798

8、查看本地镜像

docker images

9、拉取镜像

docker pull java:8

10、将容器做成镜像

1)查看容器ID,docker ps -a

2)打包成镜像

docker commit ${containerId} ${image-name}

3)示例:docker + tomcat8 + jdk8

11、复制文件到容器中

docker cp videoweb.war eefa3061d4b8:/opt/tomcat/webapps


12、重启docker服务

sudo systemctl start docker
sudo systemctl enable docker

13、安装docker-compose

1)下载安装

sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

其他版本

https://github.com/docker/compose/releases/download

匹配docker版本

https://docs.docker.com/compose/compose-file/compose-versioning

2)授权

sudo chmod +x /usr/local/bin/docker-compose

3)查看安装结果

docker-compose -v

~~

14、镜像与卷存放的位置

1)路径

/var/lib/docker

~~

15、创建卷

1)命令

docker volume create uptime-kuma

2)docker启动关联卷

docker run -v uptime-kuma

~~

docker-compose 搭建的lamp+redis 代码 附上docker-compose # 标准配置文件应该包含 version、services、networks 三大部分, # 其中最关键的就是 services 和 networks 两个部分,下面先来看 services 的书写规则 # 指定版本号 version: '2' services: # 在 services 标签下的第二级标签是 console,这个名字是用户自己自定义,它就是服务名称。 console: # 为自定义的容器指定一个名称,而不是使用默认的名称 container_name: console # 容器内置名称 hostname: console # 指明路径 build: # context 指定绝对路径或者相对路径 context: ./images/console # dockerfile 指定 Dockerfile 的文件名称 dockerfile: Dockerfile # volumes_from 从其它容器或者服务挂载数据, # 可选的参数是 :ro 或 :rw,前者表示容器只读,后者表示容器对数据是可读可写的(默认情况为可读可写的)。 volumes_from: - php # 挂载一个目录或者一个已存在的数据容器,可以直接使用 HOST:CONTAINER 这样的格式 # ,或者使用 HOST:CONTAINER:ro 这样的格式,后者对于容器来说,数据是只读的,这样可以有效保护宿主机的文件系统 volumes: # 使用绝对路径挂载数据 - /root/.ssh/:/root/.ssh/ # 类似于使用 docker run 的效果 我也不知道 不写因为console并不是直接启动导致镜像不会产生 tty: true # web,这个名字是用户自己自定义,它就是服务名称。 web: # 为自定义的容器指定一个名称,而不是使用默认的名称 container_name: web # 容器内置名称 hostname: web # 指明路径 build: # context 指定绝对路径或者相对路径 context: ./images/nginx # dockerfile 指定 Dockerfile 的文件名称 dockerfile: Dockerfile # 映射端口 ports: - '80:80' # 此选项解决了启动顺序的问题 这个的意思是必须在php启动以后才能启动 # 注意的是,默认情况下使用 docker-compose up web 这样的方式启动 web 服务时, # 也会启动 php 服务,因为在配置文件中定义了依赖关系 depends_on: - php # volumes_from 从其它容器或者服务挂载数据volumes_from: - php volumes: # 已经存在的命名的数据 - nginx-log:/var/log/nginx # 以 Compose 配置文件为中心的相对路径作为数据挂载到容器 - ./images/nginx/sites-enabled:/etc/nginx/sites-enabled - ./images/nginx/cert:/etc/nginx/cert # 加入指定网络 networks: default: # 同一网络上的其他容器可以使用服务器名称或别名来连接到其他服务的容器 aliases: - web.sunchanghao.top - mid.sunchanghao.top - sevice.sunchanghao.top - admin.sunchanghao.top # php,这个名字是用户自己自定义,它就是服务名称。 php: # 为自定义的容器指定一个名称,而不是使用默认的名称 container_name: php # 容器内置名称 hostname: php # 服务除了可以基于指定镜像,还可以基于一份 Dockerfile, # 在使用 up 启动之时执行构建任务,这个构建标签就是 build,它可以指定 Dockerfile # 所在文件夹的路径Compose 将会利用它自动构建这个镜像,然后使用这个镜像启动服务容器 build: # context 选项可以是 Dockerfile 的文件路径,也可以是到链接到 git 仓库的 url # 当提供的值是相对路径时,它被解析为相对于撰写文件的路径,此目录也是发送到 Docker 守护进程的 context context: ./images/php # 使用此 dockerfile 文件来构建,必须指定构建路径 dockerfile: Dockerfile # 挂载一个目录或者一个已存在的数据容器, volumes: # 以 Compose 配置文件为中心的相对路径作为数据挂载到容器。 - ./app:/mnt/app # db,这个名字是用户自己自定义,它就是服务名称。 db: # 为自定义的容器指定一个名称,而不是使用默认的名称 container_name: db # 容器内置名称 hostname: db # 从指定镜像中启动容器,可以是存储仓库、标签以及镜像 ID image: mysql:5.7 environment: MYSQL_USER: 'sch' MYSQL_PASS: '1111' MYSQL_ROOT_PASSWORD: 'root' volumes: - db:/var/lib/mysql ports: - '3306:3306' redis: # 为自定义的容器指定一个名称,而不是使用默认的名称 container_name: redis # 容器内置名称 hostname: redis # image 则是指定服务的镜像名称或镜像 ID。如果镜像在本地不存在,Compose 将会尝试拉取这个镜像image: redis:3.2.7 # 设置端口号 ports: - '6379:6379' # 挂载一个目录或者一个已存在的数据容器 volumes: # 已经存在的命名的数据- redis:/data # node volumes: nginx-log: # 设置volume的驱动,默认是local. driver: local db: driver: local redis: driver: local
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值