3.kubernetes-docker容器操作

1.查看全部容器

docker ps -a

2.启动容器(运行镜像)

 --restart    ##重启规则; 加上--restart=always它相当于宿主机开机自启。

2.1.非交互式启动容器 

docker run --rm alpine /bin/echo hello
docker run -d --name myalpine alpine
docker run -d --name myalpine alpine /bin/sleep 300

让宿主机重启后容器也跟着重启

docker run --name=mynginx -d --restart=always nginx

update

添加、修改容器启动的参数

docker update cxkasdfi803 --restart=always  ##容器ID

在宿主机上可询

ps -aux | grep "sleep 300" | grep -v grep
docker ps

进入容器

docker exec -it 2d81399b389 /bin/sh

手动启停容器

docker stop 2d81399b389
docker start 2d81399b389
docker restart 2d81399b389

删除运行中的容器

docker rm -f 2d81399b389

删除停止的容器

for i in `docker ps -a|grep -i exit|awk '{print $1}'`;do docker rm $i;done

commit----由容器创建镜像

  -m:提交的信息说明

  -a:author string

docker commit -p myalpine liben160/alpine:v3.10.3_with_1

docker commit -a "lilei" -m "加了一个页面" dsfadifdslkID benbne:v1.0

参数-p,表示在提交产生新镜像时,不接收新的数据。

2.2.导入导出镜像

导出:save

docker save 2d81399b389 > nginx:laster.tar

docker save -o nginx:laster.tar
nginx:v1.0

导入:load 

docker load < nginx:laster.tar

新导入的镜像没有标签,需要手动打个tag

docker tag 2d81399b389 liben160/nginx:laster

2.3.查看容器日志

docker logs 2d81399b389
docker logs -f 2d81399b389  ##  -f 即时刷新

2.3.映射端口

docker run --rm --name mynginx -d -p81:80 liben160/nginx:v1.12.2

  -p容器外端口(使用宿主机端口):容器内端口

 

2.4.映射本地目录到容器

  挂载本地目录

    -v 宿主机目录:容器目录:rw        ##:rw读写,也可以:r

docker run --name mynginx01 -d p82:80 -v /root/html:/usr/share/nginx/html liben160/nginx:v1.12.2

docker run --name mynginx -d p88:80 -v /root/html:/etc/nginx/html -v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf nginx

查看映射关系

docker inspect 1f75fe643315

 2.5.传递环境变量

docker run -e 环境变量key=环境变量value

docker run --rm -e E_OPTS=abcdef liben160/alpine:latest printenv

#传递多个变量
docker run --rm -e E_OPTS=abcdef -e C_OPTS=123456 liben160/alpine:latest printenv

 2.6.cp  把容器中的文件cp到宿主机,或把宿主机内容复到容器里。

docker cp sfdsdfjsklf:/etc/nginx/nginx.conf /data/conf/nginx.conf

 

3.安装一个java应用

3.1.编写自已的应用

  java+redis

 

3.1.1.先安装一个redis

  官网hub.docker.com

  

 

   

 

 测试中会把这redis.conf及/data两个目录映射到宿主机。

redis启动命令:redis-server /usr/local/etc/redis/redis.conf

redis 容器启动自定义命令:

docker run -v /data/redis/redis.conf:/etc/redis/redis.conf -d --name myredis -p 6379:6379 redis redis-server /etc/redis/redis.conf

 

 

设置redis db的连接密码

vim /data/redis/redis.conf

 

 docker restart myredis

3.1.2.在java代码中设置连接redis的配置

  spring.redis.host=10.146.16.248

  spring.redis.password=benben

3.2.把应用打包

  Dockerfile

  在hub.docker.com上找到java基础环境   

找到8-jdk  linux版的

 

 

 

FROM openjdk:8-jdk-slim
LABEL maintainer=benben

COPY target/*.jar /app.jar    ##把宿主机上的jar包复到容器里; target/*.jar相对目录,基于当前目录。

ENTRYPOINT ["jave","-jar","/app.jar"]
docker build -t java-demo:v1.0 -f Dockerfile .

3.3.启动容器

docker run -d -p 8080:8080 --name myjava dava-demo:v1.0

dokcer ps

docker logs 923sfkldsmo

 3.4.把镜像推送到hubor

docker login

docker tag java-demo:v1.0 ben/java-demo:v1.0

docker push ben/java-demo:v1.0

docker pull ben/java-demo:v1.0   ##拉镜像
posted @ 2020-07-23 16:18  天涯160  阅读(206)  评论(0)    收藏  举报