Docker常用命令与Ubuntu防火墙简单配置


一、dockers常用命令

启动docker服务

sudo systemctl start docker.service  

查看镜像文件

sudo docker images

查看容器 查看所有加 -a

sudo docker ps

获取镜像

sudo docker pull ubuntu

创建启动容器

sudo docker run -itd ubuntu /bin/bash

参数说明:
-i 交互式操作
-t 终端
-d 后台启动

启动/关闭容器

sudo docker start/stop [容器id]

进入容器

sudo docker exec -it [容器id] bash

查看容器实时log

docker logs -ft --tail 50  [container id]

f 实时输出日志;t 当前时间戳

后台启动docker,并指定宿主机端口和docker映射端口

sudo docker run -p 8000:80 -itd --privileged [imageID] [command]  --restart=always

参数说明:
–privileged 容器将拥有访问主机所有设备的权限
command 填 bash 就行
containerID 容器id
restart=always 容器自启动
-v 左边宿主机路径:右边容器路径
将宿主机内的指定文件传输至容器内部的指定地址。

sudo docker cp [userFilePath] [containerID]:[DockerPath] 

将修改后的容器重新打包成镜像

sudo docker commit [containerID] [ImageName]:[Version] 

参数说明:
containerID 容器id
ImageName 镜像名(自己起的)
Version 版本说明(也是自己起的)
在这里插入图片描述

镜像导出

sudo docker save -o  镜像名(自己起的) 镜像名

在这里插入图片描述
镜像导入

sudo docker load < [UsertImageName.tar]

参数说明:
UsertImageName.tar 导出的 .tar镜像文件

实时刷新显示docker容器日志

sudo docker logs -tf --tail 50 [容器ID]

镜像删除

sudo docker  rmi -f  ImageID 

容器删除

sudo docker rm  ContainerID

容器自启动(已经运行的容器)

docker update --restart=always 容器名或容器ID

容器自启动后执行shell命令(centos镜像)

自己写一个shell脚本

将写好的脚本(.sh文件)放到目录 /etc/profile.d/ 下,系统启动后就会自动执行该目录下的所有shell脚本。

容器映射

将本机通过portainer工具映射管理

sudo docker run -d -p 9000:9000  --restart=always  -v /var/run/docker.sock:/var/run/docker.sock  --name portainer  portainer/portainer

同一网段其他主机添加

 vim /usr/lib/systemd/system/docker.service
 
 # ExecStart中添加下面这一行,添加开放端口
 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock 

重新加载系统的配置文件

 systemctl daemon-reload

重启docker

service docker restart

完成之后可以用另一台服务器看一下是否成功

docker -H IP地址 ps

如果没有关闭防火墙,没有打开端口映射的话,会出现以下情况

在这里插入图片描述

关于限制docker对cpu和内存使用率设置

点击跳转
已经创建的容器限制内存使用
1 启动容器时限制容器内存
docker run -m 64g --memory-swap -1

2 限制已启动容器的内存

docker stop containerId
docker update containerId -m 64g  --memory-swap -1
docker start containerId

ps:命令详解

–memory 或 -m 限制容器的内存使用量(如10m,200m等)
–memory-swap # 限制内存和 Swap 的总和,不设置的话默认为–memory的两倍

如果只指定了 --memory 则 --memory-swap 默认为 --memory 的两倍
如果 --memory-swap 和 --memory 设置了相同值,则表示不使用 Swap
如果 --memory-swap 设置为 -1 则表示不对容器使用的 Swap 进行限制
如果设置了 --memory-swap 参数,则必须设置 --memory 参数
后期 update --memory 时数值不能超过 --memory-swap 的值,否则会报错 Memory limit should be smaller than already set memoryswap limit

3 查询是否配置成功

  • 查看配置 : docker inspect containerId
  • 查看容器状态: docker stats

三 遇到的错误
1 ubuntu 宿主机系统默认未开启swap限制
(1) 错误表现:

Your kernel does not support swap limit capabilities or the cgroup is not mounted

(2)解决方案

  • 1 打开/etc/default/grub文件
sudo vi /etc/default/grub
  • 2 加入下面配置
    GRUB_CMDLINE_LINUX=“cgroup_enable=memory swapaccount=1”
  • 3 更新grub系统
    sudo update-grub
  • 4 重启电脑

2 命令中未设置–memory-swap
(1)错误表现

Memory limit should be smaller than already set memoryswap limit, update the memoryswap at the same time

(2)错误原因

docker 默认没有启用memory-swap交换内存,直接设置了内存问题会出问题,也就是说宿主 swap 支持使用多少则容器即可使用多少

(3)解决方式

设置内存的同时必须设置–memory-swap
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Docker是一种容器化技术,可以在不同的操作系统上运行应用程序。Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。 以下是一些常用的DockerDocker Compose命令: ### Docker - `docker run`: 运行一个Docker容器。 - `docker ps`: 列出正在运行的Docker容器。 - `docker images`: 列出所有本地镜像。 - `docker build`: 使用Dockerfile构建一个Docker镜像。 - `docker push`: 将本地镜像上传到Docker Hub或其他Docker镜像仓库。 - `docker pull`: 从Docker Hub或其他Docker镜像仓库中下载一个镜像。 - `docker rm`: 删除一个或多个Docker容器。 - `docker rmi`: 删除一个或多个本地Docker镜像。 ### Docker Compose - `docker-compose up`: 构建并启动一个Docker Compose应用。 - `docker-compose down`: 停止并删除一个Docker Compose应用。 - `docker-compose ps`: 列出正在运行的Docker Compose服务。 - `docker-compose logs`: 查看一个Docker Compose服务的日志。 - `docker-compose exec`: 在一个Docker Compose服务中执行一个命令。 - `docker-compose build`: 构建一个Docker Compose服务的镜像。 - `docker-compose pull`: 下载一个Docker Compose服务的镜像。 ### Docker Compose配置文件 Docker Compose使用YAML格式的配置文件来定义多容器Docker应用程序。以下是一个示例配置文件: ``` version: '3' services: web: build: . ports: - "5000:5000" redis: image: "redis:alpine" ``` - `version`: 定义配置文件使用的Docker Compose版本。 - `services`: 包含一个或多个Docker容器服务的列表。 - `build`: 构建一个Docker镜像。 - `image`: 使用现有的Docker镜像。 - `ports`: 映射容器端口到主机端口。在此示例中,容器的5000端口将映射到主机的5000端口。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

挚友灬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值