镜像基础命令:
docker version 查看docker版本
docker search --automated -s 3 nginx 按星级搜索镜像
docker pull ubuntu:14.04 获取镜像
docker images 查看镜像信息
docker inspect 获取镜像详细信息
docker history nginx 查看镜像历史
docker tag nginx:latest mynginx:latest 给镜像添加一个新标签
docker rmi 镜像名称或ID -f参数强制 删除镜像
docker commit -m “add a new file” -a "zhang san" 容器ID test:0.1 基于已有的容器创建镜像
dcoker save -o ubuntu_14.04.tar ubuntu:14.04 存出镜像,导出为文件
docker load --input ubuntu_14.04.tar 或 docker load < ubuntu_14.04.tar 载入镜像
docker push 仓库路径 上传镜像
容器基础命令:
docker create -it ubuntu:latest 新建容器不启动
docker start ubuntu 启动容器
docker run -it ubuntu:14.04 /bin/echo "hello world" 新建并启动容器,运行命令后终止
docker run -it ubuntu:14.04 /bin/bash 新建并进入容器
exit退出容器终止 ctrl+q crtl+p退出容器不终止
docker exec -it 容器名称 /bin/bash 进入正在运行的容器
docker run -d centos:latest /bin/bash -c "命令" 新建容器运行命令但不终止,-d后台运行
docker logs 容器ID 查看容器输出
docker stop| start | restart | inspect 容器ID 停止启动重启查看详细信息
docker export 容器ID > centos7.tar 导出容器
cat centos7.tar | docker import - centos:test 导入容器
docker rm 容器名或ID 删除容器 -f参数强制
-P 随机映射端口 -p 指定映射端口
docker run -d -P --name web-test001 httpd 随机映射容器的80端口
docker run -d -p 8000:80 --name web-test002 httpd 宿主机8000端口映射容器80端口
docker run -d -p 5000:5000 -v /opt/registry:/var/lib/registry registry 将容器内/var/lib/registry目录挂载到宿主机/opt/registry目录
:ro #只读,只能通过宿主机来操作文件,容器内部无法操作!
:rw #可读可写, 默认
docker run -d -p 5000:5000 -v /opt/registry:/var/lib/registry:ro registry 将容器内/var/lib/registry目录挂载到宿主机/opt/registry目录,并且只能通过宿主机来操作文件,容器内部无法操作!
docker run -dit -p 192.168.1.102:10112:22 -p 192.168.1.102:80:80 centos 将容器的22端口和80端口分别映射到宿主机192.168.1.102网卡的10112和80端口
docker run -d -p 192.168.1.102::80 --name webserver centos:http 将容器的80端口映射到宿主机192.168.1.102网卡的随机端口,并定义一个容器名
docker run -d -p 127.0.0.1:5000:5000/udp --name db4 commit:v1 将容器的5000/udp端口映射到宿主机127.0.0.1网卡的5000端口,并定义了一个容器名
docker port web-test001 查看容器当前映射的端口配置
docker build --no-cache -t "centos:httpv1" . 使用build命令构建镜像,点表示当前目录的dockerfile文件,--no-cache不使用缓存,-t定义名字标签
项目命令常用操作:
docker cp /www/runoob 96f7f14e99ab:/www/ 将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下
docker cp /www/runoob 96f7f14e99ab:/www 将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www
docker cp 96f7f14e99ab:/www /tmp/ 将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中
docker rm $(docker ps -a -q) 删除所有容器,-f参数强制
docker-compose up -d nginx 启动nginx容器
docker logs --tail=100 容器名 查看容器日志,-f参数实时监控
docker volume create 卷名 创建一个容器卷
docker volume rm 卷名 删除一个卷
docker volume ls 查看所有容器卷
docker volume inspect 容器卷 查看指定容器卷信息
docker inspect 容器名 查看容器信息,主要用于查看卷映射信息
docker swarm join-token worker 查看加入woker的命令
docker swarm join-token manager 查看加入manager的命令
docker node ls 查看swarm节点下的主机
docker node rm -f 节点ID 删除swarm其中一个节点,-f参数强制
docker swarm leave -f 解散swarm集群
docker swarm leave 节点加入新的集群时先执行这条命令
docker swarm leave --force 强制退出集群
docker network create -d overlay ov_net3 --subnet 172.19.0.0/24 --gateway 172.19.0.1 创建overlay网络
docker network connect 网络名 容器名 为容器重新指定网络
docker rename 原名 现名 修改容器名
docker image tag 原名:tag 现名:tag 修改镜像名
docker system df 查看docker占用空间
docker system prune -a 清理无用镜像、缓存、挂载数据
启动容器时,控制容器日志大小和数量
# max-size 最大数值
# max-file 最大日志数
$ docker run -it --log-opt max-size=10m --log-opt max-file=3 redis
全局配置:
创建或修改文件 /etc/docker/daemon.json,并增加以下配置
{
"log-driver":"json-file",
"log-opts":{
"max-size" :"50m",
"max-file":"1"
}
}
随后重启 Docker 服务
systemctl daemon-reload
systemctl restart docker
已存在的容器需要重建生效。
docker rm -f redis 删除容器
docker-compose up -d --build redis 重新构建
docker stats 查看容器占用资源情况
有一些java容器长时间运行导致内存不足,通过添加deploy模块,限制容器的内存:
docker-compose限制容器内存使用:添加deploy模块:例如下:
order:
build:
context: "/data/java-service/order/"
dockerfile: "Dockerfile"
image: order:v1
container_name: "order"
ports:
- "18095:18095"
deploy:
resources:
limits:
cpus: "2.00"
memory: 1536M
reservations:
memory: 1228M
#env_file: /data/java-service/env_variables
restart: always
volumes:
- "/var/log/docker/order:/var/log/order"
- "/data/java-service/order/:/var/www/order/"
# 设置容器内用户权限为root
privileged: true
logging:
driver: "json-file"
options:
max-size: "500m"
environment:
- TZ=Asia/Shanghai
之后使用docker-compose --compatibility up -d order启动 注意需要添加--compatibility参数,否则报错或提示。
docker容器迁移的步骤:
1、先将容器导为镜像
docker commit -m “add a new file” -a "zhang san" 容器ID mysql:v2
2、再将刚刚的镜像导出为镜像文件
docker save -o mysql.tar mysql:v2
3、将容器映射的数据目录打包。
zip -r mysql.zip mysql
4、将zip包和导出的镜像tar文件迁移到另一台机器上
根据需求使用scp或其它命令
5、导入镜像到新机器。
docker load < mysql.tar
6、将zip包解压到和旧机器一样的位置
7、使用和旧机器一样的docker run 命令或者将原机器的dockerfile文件拷贝到新机器使用docker-compose命令启动镜像。
标签:容器,www,run,--,常用命令,镜像,docker From: https://www.cnblogs.com/lydongbk/p/17647916.html