docker常用运维指令

docker安装

  1. 卸载旧版本的docker
    yum remove docker
    docker-client
    docker-client-latest
    docker-common
    docker-latest
    docker-latest-logrotate
    docker-logrotate
    docker-engine
  2. 安装所需的软件包
    yum install -y yum-utils device-mapper-persistent-data lvm2
  3. 指定仓库
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  4. 安装docker-ce
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    yum install -y docker-ce docker-ce-cli containerd.io
    systemctl enable docker
    systemctl start docker
  5. 启动docker
    systemctl start docker
    systemctl stop docker
  6. 查看docker可用的版本号
    yum list docker-ce --showduplicates | sort -r
  7. 运行hello-world示例程序
    sudo docker run hello-world
  8. 开机自启动docker(8,9,10,11适用于使用yum安装的各种服务)
    systemctl enable docker
  9. 关闭自启动
    systemctl disable docker
  10. 查看已经设置开机自启动的服务
    systemctl list-unit-files | grep enable
  11. 查看正在运行的服务
    systemctl list-units --type=service
  12. 已经启动的项目,则使用update更新:
    docker update --restart=always container_id
  13. 查看容器运行状态
    docker inspect --format '{{.State.Running}}'
  14. 查看docker版本
    docker -v
  15. 删除孤立的容器
    docker container prune
  16. 删除孤立的镜像
    docker image prune -a
  17. 直接启动(常用于测试,可以立即看到错误日志信息)
    dockerd
  18. 查看容器目录和版本,很多指令和宿主一样
    cat /proc/version和ls
  19. docker卸载
    yum list installed|grep docker
    yum remove -y containerd.io.x86_64
    yum remove -y docker-ce.x86_64
    yum remove -y docker-ce-cli.x86_64
    rm -rf /var/lib/docker
    rm -rf /var/run/docker
    rm -rf /var/run/docker.sock
  20. 查询指定名称的容器
    docker ps -a| grep <name>
  21. 查看容器的进程
    docker top <container_id>
  22. 容器的资源监控,限制
    docker stats <container_id>
  23. 查看资源使用情况
    docker system df
  24. 查看每个容器的资源使用情况
    docker system df -v
  25. 给运行中的docker容器添加新的端口
    docker inspect container_name | grep IPAddress # 获取容器ip
    iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000 # iptable转发端口
  26. docker默认安装位置
    /var/lib/docker,日志文件在/var/lib/docker/containers//-json.log

docker官方镜像

https://dockerhub.azk8s.cn

docker国内镜像

https://docker.mirrors.ustc.edu.cn

切换镜像

vi /etc/docker/daemon.json
在文件中写入:
建议使用阿里的镜像:https://9cpn8tt6.mirror.aliyuncs.com

{
  "registry-mirrors":["https://9cpn8tt6.mirror.aliyuncs.com"]
}

然后重启进程:
systemctl daemon-reload
systemctl restart docker

安装docker-compose

第一种方式:

  1. mkdir /usr/local/aicp/docker-compose_entry
  2. 复制docker-compose-Linux-x86_64二进制到上面新建的目录,然后重命名为docker-compose
  3. 创建软连接:sudo ln -s /usr/local/aicp/docker-compose_entry/docker-compose /usr/bin/docker-compose
  4. 验证是否安装成功:docker-compose --version

快捷方式:

curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

查看日志

docker logs 2b1b7a428627
查看指定时间后的日志,只显示最后100行:
docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID
查看最近30分钟的日志:
docker logs --since 30m CONTAINER_ID
查看某时间之后的日志:
docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID
查看某时间段日志:
docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID
导出日志:
docker logs --since='2020-04-16' CONTAINER_ID >> fileName.log
docker logs --since 30m CONTAINER_ID >> fileName.log

查询docker下的所有容器

docker ps -a

停止容器

docker stop 9d0fd158d060

启动容器

docker start 9d0fd158d060

重启容器

docker restart bff8097388ac

重新进入容器【运行容器】

docker attach 9d0fd158d060

进入容器【强烈建议使用】

docker exec -it 8b1be6ce3381 /bin/bash

进入容器之后查看当前目录

pwd

导出容器

docker export 9d0fd158d060 > rabbitmq.tar

导入容器快照

cat rabbitmq.tar | docker import - test/rabbitmq:v1

删除容器

docker rm -f 9d0fd158d060

删除指定名称前缀的容器

docker rm -f (docker ps -a | grep "collection*" | awk '{print1}')

删除所有容器

docker rm -f (docker ps -a | awk '{print1}')

查看容器内进程

docker top 9d0fd158d060

查看容器运行状态

docker inspect 9d0fd158d060

查看docker所有镜像

docker images

删除镜像

docker rmi ff5975823ba2

查找指定名称的镜像

docker images | grep "10.106.11.152:30280/industry.net.cloud/*" | awk '{print $3}'

删除指定前缀的所有镜像

docker rmi (docker images | grep "10.106.11.152:30280/industry.net.cloud/*" | awk '{print3}')

删除tag为none的镜像

docker rmi (docker images | grep "none" | awk '{print3}')

查看docker网关

docker network ls

创建docker网关

docker network create "name"

删除docker网关

docker network rm "name"

docker部署jar包

1.使用mvn clean package生成jar包,并放到服务器指定目录
2.创建Dockerfile文件,并放到上述同一个目录

FROM openjdk:8
MAINTAINER kaka
ADD access-0.0.1-SNAPSHOT.jar access.jar
EXPOSE 8080
ENTRYPOINT ["java","-Xms800m","-Xmx800m","-XX:MaxNewSize=512m","-jar","-Duser.timezone=GMT+8","access.jar"]

3.执行命令,构建docker镜像【.表示Dockerfile文件在当前目录】
docker build -t access:0619 .
4.启动容器
docker run -d --restart=always --name access -p 8080:8080 access:0615
docker run -d --restart=always --cap-add=SYS_PTRACE -v /etc/hosts:/etc/hosts --name access -p 30010:30010 access:0224

  1. 使用docker安装的java程序,无法使用jstat等jvm工具(提示pid not found)
    直接进入容器内部使用相关工具即可。
  2. 在docker容器内部使用 jmap -heap pid,提示Operation not permitted
    docker run --cap-add=SYS_PTRACE ...

docker compose安装

1.下载安装包
2.chmod +x /usr/local/aicp/docker_compose_entity/docker-compose
3.创建软链接:ln -s /usr/local/aicp/docker_compose_entity/docker-compose /usr/bin/docker-compose
4.测试是否安装成功:docker-compose --version

docker日志默认存储路径

/var/lib/docker/containers/容器ID/local-logs/

docker网络管理

docker network create backend
docker network create frontend

docker run -it --name container1 --net backend busybox
docker run -it --name container2 --net backend busybox
docker run -it --name container3 --net frontend busybox

docker network connect frontend container2

docker desktop

镜像文件存在虚拟硬盘中:C:\Users\程良普\AppData\Local\Docker\wsl

安装Docker后内网ip不通?Docker修改Docker0网桥默认ip的方法

https://cloud.tencent.com/developer/article/1607726
echo {"bip":"172.18.0.1/16"} >> /etc/docker/daemon.json

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容