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-period | API 1.25+,将CPU实时时间限制为微秒 |
--cpu-rt-runtime | API 1.25+,将CPU实时运行时间限制为微秒 |
--cpu-shares, -c CPU份额(相对权重) | |
--cpus | API 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-limit | API 1.40+,调节容器pids限制(-1表示无限制) |
--restart | 容器退出时重新启动策略以应用 |
实例
更新 CPU 共享数量
docker update --cpu-shares 512 f361b7d8465
更新容器的重启策略
docker update --restart=always f361b7d8465
更新容器内存
docker update -m 500M f361b7d8465
注意:本文归作者所有,未经作者允许,不得转载