docker常用的操作

傻男人 1年前 ⋅ 1008 阅读

docker常用的操作

一、添加私仓

修改配置文件

[root@localhost ~] vim /etc/docker/daemon.json
在中间中添加"insecure-registries": ["私仓地址"]

如果不为空,则需要给insecure-registries的value添加自己的镜像私仓

{
 "insecure-registries": ["192.xx.xx.xx:5000","serverIp:port"]
}

重启docker

二、 修改docker的默认存储位置

停止docker

创建docker新的存储位置/mount/docker

修改配置文件

[root@localhost ~] vim /etc/docker/daemon.json
在中间中添加"data-root": "/home/mount/docker"
#/home/mount/docker为docker新的存储位置

将之前的docker文件移动到新存储的位置

[root@localhost mount]# mv /var/lib/docker /home/mount/docker

重启docker

检查是否更改成功

docker info |grep "Docker Root Dir"

完整的daemon.json

{
 "registry-mirrors" : ["https://docker.mirrors.ustc.edu.cn"],
 "insecure-registries": ["121.36.93.251:5000","222.212.141.42:5000","222.212.141.43:5000"],
 "data-root": "/mount/docker/docker",
 "log-driver":"json-file",
 "log-opts": {"max-size":"200m", "max-file":"5"}
}

三、 docker-compose需要在现有的docker swarm中加服务并使用现有的网络

# 在version的同级增加以下的内容
networks:
  ${network-name}:
    external: true

四、将本地的镜像推送给到私仓

将本地镜像打标签

  • 参数说明:imaganame 本地镜像的名字 tag 标签号 newimagename推送的镜像新的名字 newtag自定义的版本号

newimagename的命名一般为:仓库地址/命名空间/镜像的名字(命名空间可以省略)并全部小写 如:127.0.0.1:5000/test/myngnix或者127.0.0.1:5000/myngnix

docker tag imaganame:tag newimagename:newtag

推送镜像(newimagename:newtag 上一步打的标签镜像)

docker push newimagename:newtag 

推送镜像

五、查看已经运行镜像的启动命令

使用runlike插件 此方法查询的结果,会增加一部分原始的额外启动的参数

安装runlike

pip install runlike

查看运行镜像的启动的命令

runlike -p 容器ID

六、docker-compose yml文件示例

version: "3"
services:
  ${server_name}: # 服务名字
      image: ${image_name}
      deploy:
        replicas: 1   #定义 replicated 模式的服务的复本数量
        placement:
          constraints: [node.hostname == master10-151]#制定
        update_config:
          parallelism: 1    #每次更新复本数量
          delay: 10s       #每次更新间隔
        restart_policy:
          condition: on-failure     #定义服务的重启条件
      networks:
        - carloan-overlay #网络名字
      volumes:
        - /home/mount/logs/car_loan/eureka-server/:/opt/logs/eureka-server/
      ports:
        - "8762:8762"
      environment: #环境变量
        - spring.profiles.active=test

networks:
  ${network_name}:   # 创建网络
    driver: overlay

七、docker卸载

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

rm -rf /etc/systemd/system/docker.service.d

rm -rf /var/lib/docker  #/var/lib/docker为docker的数据目录

rm -rf /var/run/docker

rm -rf /usr/bin/docker

rm -rf /usr/share/man/man1/docker*

八、更新一个或多个容器的配置

docker update [OPTIONS] CONTAINER [CONTAINER...]

OPTIONS 说明

名称描述
--blkio-weight阻塞IO (相对权重),介于10到1000之间,0表示禁用(默认禁止)
--cpu-period限制CPU CFS(完全公平的调度程序)期限
--cpu-quota限制CPU CFS(完全公平的调度程序)配额
--cpu-rt-periodAPI 1.25+,将CPU实时时间限制为微秒
--cpu-rt-runtimeAPI 1.25+,将CPU实时运行时间限制为微秒
--cpu-shares, -c CPU份额(相对权重)
--cpusAPI 1.29+,CPU数量
--cpuset-cpus允许执行的CPU(0-3,0,1)
--cpuset-mem允许执行的MEM(0-3,0,1)
--kernel-memory内核内存限制
--memory-swap交换限制等于内存加交换,"-1"以启用无限交换
--memory-reservatio内存软限制
--memory, -m内存限制
--pids-limitAPI 1.40+,调节容器pids限制(-1表示无限制)
--restart容器退出时重新启动策略以应用

实例

更新 CPU 共享数量

docker update --cpu-shares 512 f361b7d8465

更新容器的重启策略

docker update --restart=always f361b7d8465

更新容器内存

docker update -m 500M f361b7d8465


全部评论: 0

    我有话说: