【LINUX篇】docker操作相关命令

痛点:每次操作linux时总是记不住执行命令,都要打开百度去搜索,索性自己整理一下。

容器操作

• 显示正在运行的docker容器
docker ps
• 扩展说明
docker ps : 列出容器
语法
docker ps [OPTIONS]
OPTIONS说明:
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
--format :指定返回值的模板文件。
-l :显示最近创建的容器。
-n :列出最近创建的n个容器。
--no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。
• 实用命令——查询最近200条docker容器的日志,并实时滚动
docker logs -f -t --tail=200 容器名

ps:想要进行grep筛选的方法有2种
1.docker logs nginx 2>&1 | grep INFO
2.grep INFO `docker inspect --format={
         
  {.LogPath}} nginx`

容器生命周期管理

• 创建docker容器
docker run
           # 保持容器在后台持续运行
           --detach 
           # 为容器指定一个名称
           --name 容器名称 
           # 能够使我们在重启docker时,自动启动相关容器。
           --restart always 
           # 指定端口映射,格式为:主机(宿主)端口:容器端口
           --publish 9911:9911 
           # 映射路径,格式为:主机路径:容器路径
           --volume /opt/volume/biz/redis/logs:/var/log/redis/ 
           镜像名:镜像版本
           redis:latest

其他命令不变换成docker create ,只是单纯创建容器不会启动。
• 启动、重启、停止、删除容器
docker start        :启动一个或多个已经被停止的容器
docker restart      :重启容器
docker stop         :停止一个运行中的容器
docker rm           :删除容器(不能删除正在运行中的容器)
docker kill         :杀掉一个运行中的容器

正常情况下删除,先将容器停止再进行删除操作: docker stop redis && docker rm redis

删除所有已经停止的容器:
docker rm $(docker ps -a -q)
• 进入到docker容器中
docker exec -i -t  mynginx(docker ps中的NAMES或者CONTAINER ID) /bin/bash
进入后exit退出
ps:使用docker exec进入后退出不会导致容器停止。使用docker attach进入后会导致容器的停止。
• copy本机文件到docker容器中
docker cp 本地文件路径 容器长ID:容器路径              
容器长ID:通过docker inspect 获取
docker cp /usr/local/test.txt 容器长ID:/usr/local/tomcat/webapps

镜像操作

• 查看镜像
docker images       :列出本地镜像

docker images ubuntu:列出本地镜像中REPOSITORY为ubuntu的镜像列表
• 删除镜像
docker rmi : 删除本地一个或多个镜像

强制删除本地镜像 runoob/ubuntu:v4
docker rmi -f runoob/ubuntu:v4
• 创建镜像
docker build 命令用于使用 Dockerfile 创建镜像

以下是使用openjdk构建jar包,Dockerfile编写
FROM openjdk:8-jdk-alpine

MAINTAINER author

ADD *.jar app.jar

RUN sh -c touch /app.jar

ENV TZ=Asia/Shanghai
ENV JAVA_OPTS=
ENV profiles=prod

VOLUME /tmp

EXPOSE 8080

ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Dspring.profiles.active=$profiles -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
• 下载/导入镜像
docker save : 将指定镜像保存成 tar 归档文件。

将镜像 openjdk:8-jdk-alpine 生成 openjdk.tar 文件
docker save -o my_ubuntu_v3.tar openjdk:8-jdk-alpine

docker load : 导入使用 docker save 命令导出的镜像。
将镜像文件 openjdk.tar 导入
docker load --input openjdk.tar

从镜像文件openjdk.tar创建镜像,命名为openjdk:8-jdk-alpine-test
docker import openjdk.tar openjdk:8-jdk-alpine-test
更多信息
经验分享 程序员 微信小程序 职场和发展