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 ##拉镜像

浙公网安备 33010602011771号