docker基础

docker基础

1.Docker运行Nginx

搜索nginx镜像 https://hub.docker.com/search?q=nginx&type=image

docker拉取nginx镜像

docker pull nginx

运行

# –name 定义一个容器的名字,如果在执行docker run时没有指定Name,那么deamon会自动生成一个随机数字符串当做UUID。
# -d 标识是让 docker 容器在后台运行。
# -p 标识通知 Docker 将容器内部使用的网络端口映射到我们使用的主机上。
docker run --name nginx -d -p 8080:80 nginx

访问 http://127.0.0.1:8080

请添加图片描述

2.docker拉取java jdk环境
docker pull java:latest

运行项目

# 1、原生jar运行方式
java -jar xx.jar --spring.profiles.active=prod

# 2、java镜像环境运行方式
docker run -d -p 3001:3001 --restart=always -v /zhengqingya/code/demo/app.jar:/tmp/app.jar --name springboot java:latest java -jar /tmp/app.jar

# 3、可远程调试运行方式
docker run -d -p 5000:5000 -p 50001:50001 --name demo \
-v /zhengqingya/code/demo/app.jar:/tmp/app.jar \
java:latest \
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=50001 -jar /tmp/app.jar --spring.profiles.active=prod

# 4、从镜像仓库拉取运行方式
docker run -d -p 5000:5000 -p 50001:50001 \
-e PROFILE=prod \
--restart always \
--name demo \
registry.cn-hangzhou.aliyuncs.com/zhengqing/demo

其它

# arthas 相关
docker exec -it demo /bin/sh -c "wget https://alibaba.github.io/arthas/arthas-boot.jar && java -jar arthas-boot.jar"

docker exec -it demo /bin/sh -c "java -jar /opt/arthas/arthas-boot.jar"
3.常用命令

基本

# 查看当前docker版本
docker -v
docker verison

# 查看docker系统信息
docker info

开发常用

# 列出容器 -- 仅运行的容器
docker ps 
# 列出容器 -- 包含停止的容器
docker ps -a

# 查看当前本地所有镜像
docker images

# 搜索镜像
docker search 镜像
# 获取镜像
docker pull 镜像仓库地址
# 上传镜像
docker push 镜像仓库地址

# 运行容器
# –name 定义一个容器的名字,如果在执行docker run时没有指定Name,那么deamon会自动生成一个随机数字符串当做UUID。
# -d 标识是让 docker 容器在后台运行。
# -p 标识通知 Docker 将容器内部使用的网络端口映射到我们使用的主机上。
# -m 限制容器内存100m
docker run --name nginx -d -p 8080:80 -m 100m nginx

# 停止容器 
docker stop 容器ID/容器名
# 启动容器
docker start 容器ID/容器名
# 重启容器
docker restart 容器ID/容器名

# 杀掉一个运行中的容器
docker kill -s KILL 容器ID/容器名

# 删除容器
docker rm 容器ID/容器名
# 删除一个或多少容器。-f :通过SIGKILL信号强制删除一个运行中的容器-l :移除容器间的网络连接,而非容器本身-v :-v 删除与容器关联的卷
docker rm -f xx、xx2

# 删除镜像 【 顺序:停止镜像里的容器,再删除容器,最后再删除镜像 】
docker rmi 镜像id/镜像名


# 进入容器
docker exec -it 容器ID/容器名 /bin/bash
# 以交互模式启动一个容器,在容器内执行/bin/bash命令
docker run -i -t 容器ID/容器名 /bin/bash


# 查看容器日志 -t:显示时间戳
docker logs -f -t 容器ID/容器名
docker logs -fn10 -t 容器ID/容器名


# 构造镜像
# 用法 docker build -t 镜像名称 .
docker build -t docker_demo .

容器信息

# 查看 容器/镜像 元数据
docker inspect 容器ID/容器名
# 查询容器内部ip地址
docker inspect 容器ID/容器名 | grep IPAddress
# 查看日志文件路径
docker inspect --format='{{.LogPath}}' 容器ID/容器名
# 查看容器在 `/var/lib/docker/overlay2/` 下的数据目录
docker inspect -f '{{ .GraphDriver.Data.MergedDir }}' 容器ID/容器名
# 查看容器映射的数据存放目录 -- 主要是看Mounts节点信息
docker inspect -f '{{ .Mounts }}' 容器ID/容器名

运维常用

# 列出所有的容器 ID
docker ps -aq
# 停止所有的容器
docker stop $(docker ps -aq)
# 删除所有的容器
docker rm $(docker ps -aq)
# 删除所有的镜像
docker rmi $(docker images -q)

# 停止并删除指定容器
docker ps -a | grep 容器ID/容器名 | awk '{print $1}' | xargs -i docker stop {} | xargs -i docker rm {}

# 删除镜像
# docker images 获取所有images
# grep -E "xxxxx" 筛选到特定的images
# awk ‘ {print $3}’ 打印第三列 即image id列
# uniq 检查及删除文本文件中重复出现的行列
# xargs -I {} 多行转单行
# docker rmi --force {} 删除所有指定镜像id
docker images | grep -E "镜像id/镜像名" | awk '{print $3}' | uniq | xargs -I {} docker rmi --force {}
# ex: 删除镜像 `nginx:latest`
docker images | grep -E nginx | grep latest| awk '{print $3}' | uniq | xargs -I {} docker rmi --force {}


# 删除所有停止的容器
docker container prune

# 删除所有不使用的镜像
docker image prune --force --all
# 或
docker image prune -f -a


# 查看容器运行内存信息  【参数`mem_limit: 300m` # 最大使用内存】
docker stats nginx
# CONTAINER ID   NAME      CPU %     MEM USAGE / LIMIT   MEM %     NET I/O     BLOCK I/O     PIDS
# 385a15a9724d   nginx     0.00%     1.961MiB / 100MiB   1.96%     656B / 0B   0B / 8.19kB   3

其它

# 查看镜像的创建历史
docker history 镜像仓库地址
4.认证私有仓库
# 认证
docker login -u 用户名 -p 密码 私有仓库地址
# ex:认证阿里云
# docker login -u xxx registry.cn-hangzhou.aliyuncs.com
# 认证harbor私服
docker login -u admin -p Harbor12345 harbor.zhengqingya.com:11000

查看密码

config.json 会记录登录之后的用户名和密码,只是base64加密之后的密码。

# 查看密码
cat ~/.docker/config.json


# ex:
{
        "auths": {
                "ccr.ccs.tencentyun.com": {
                        "auth": "TMAxxx1Ng=="
                },
                "registry.cn-hangzhou.aliyuncs.com": {
                        "auth": "emhxxxnLg=="
                },
                "harbor.zhengqingya.com:11000": {
                        "auth": "YWRtaW46SGFyYm9yMTIzNDU="
                }
        }
}


# 解密
echo 'YWRtaW46SGFyYm9yMTIzNDU=' | base64 --decode
# username:password

移除认证凭证

# 移除认证
docker logout 私有仓库地址
# ex:移除阿里云认证
docker logout registry.cn-hangzhou.aliyuncs.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值