痛点:每次操作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
更多信息点击查看