Docker零碎笔记记录
============Docker打包导出镜像文件到本地=======================
=====镜像的导出到本地====
1:导出镜像到当前目录 (方式一)
如:docker save 镜像ID > nginx-save.tar
2:默认导出在当前路径 (方式二)
[zrf@iz2zea76txemsii7r9mwzwz docker_files]$ sudo docker save -o qzj_back_v2.tar qzjcservice:v2
3:默认导出在当前路径,有文件就覆盖
[zrf@iz2zea76txemsii7r9mwzwz docker_files]$ sudo docker save -o qzj_back_v2.tar qzjcservice:v2
4:指定导出在选定的文件路径
[zrf@iz2zea76txemsii7r9mwzwz home]$ sudo docker save -o /home/docker_files/qzj_back_v2.tar qzjcservice:v2
5:打包microsoft的镜像
[zrf@iz2zea76txemsii7r9mwzwz docker_files]$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mcr.microsoft.com/dotnet/core/sdk 3.1-buster 397f9fc13f1c 9 months ago 710MB
mcr.microsoft.com/dotnet/core/aspnet 3.1-buster-slim 7eb413cc8141 9 months ago 208MB
[zrf@iz2zea76txemsii7r9mwzwz docker_files]$ sudo docker save -o /home/docker_files/mcr_dotnetcoresdk3.1.tar mcr.microsoft.com/dotnet/core/sdk:3.1-buster
[zrf@iz2zea76txemsii7r9mwzwz docker_files]$ sudo docker save -o /home/docker_files/mcr_dotnetcore_aspnet3.1.tar mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim
=====镜像的导入==== sudo docker load < my_image.tar
[zrf@iz2zea76txemsii7r9mwzwz docker_files]$ sudo docker load < qzj_back_v2.tar
46b81f779f37: Loading layer [==================================>] 64.21MB/168.39MB
8db488981365: Loading layer [=====================>] 19.104kB/100.56kB
Loaded image ID: sha256:swq13a47849c215a155ddfb838d6ba247f60240ec8491982eca63c4a2c13a695
[zrf@iz2zea76txemsii7r9mwzwz docker_files]$ sudo docker load -i qzj_back_v2.tar
============容器的导入导出=================
===容器的导出到宿主机===
[zrf@iz2zea76txemsii7r9mwzwz docker_files]$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
58574e2d8996 qzjcservice:v2 "dotnet QzjcService.…" 14 days ago Up 4 days 0.0.0.0:6666->6666/tcp, :::6666->6666/tcp qzjc
[zrf@iz2zea76txemsii7r9mwzwz docker_files]$ docker export -o my_container.tar 58574e2d8996
[zrf@iz2zea76txemsii7r9mwzwz docker_files]$ docker export -o my_container_`date +%Y%m%d`.tar 58574e2d8996 //按照日期自动命名
===模拟 导入容器到新的宿主机===2.容器的导入 (mycontainer:v2 分别表示生成的镜像名称和tag标签)
[zrf@iz2zea76txemsii7r9mwzwz docker_files]$ docker import my_container.tar mycontainer:v2
镜像和容器 导出和导入的区别:(参考自网络)
1.镜像导入 是复制的过程
2.容器导入 是将当前容器 变成一个新的镜像
save 和 export区别:
1)save 保存镜像所有的信息-包含历史
2)export 只导出当前的信息
==========docker cp 即Docker容器与宿主机之间的相互拷贝======
1:从容器里面拷贝文件到宿主机
docker cp 容器名:要拷贝的文件在容器里面的路径 拷贝到宿主机的相应路径
如:docker cp qzjc:/app/1.txt /home/ (中间有一个空格)
2:从宿主机拷贝文件到容器里面
docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
如:docker cp /home/1.txt qzjc:/app
3:将宿主机的一个目录拷贝到容器目录下 (qzjc:容器的名称)
如: sudo docker cp /home/docker_files/testfiles/ qzjc:/app/
4:将宿主机的一个目录下面的所有文件拷贝到容器目录下 (qzjc:容器的名称),注意宿主机路径后面有一个点.
sudo docker cp /home/docker_files/testfiles/. qzjc:/app/
=====================Dockerbao打包到本地
sudo docker save -o /home/mydocker_images_byjason/v_authserver.tar v_authserver:v2
sudo docker save -o /home/mydocker_images_byjason/v_publicgateway.tar v_publicgateway:v2
sudo docker save -o /home/mydocker_images_byjason/v_projectservice.tar v_projectservice:v2
sudo docker save -o /home/mydocker_images_byjason/v_bridgeservice.tar v_bridgeservice:v2
sudo docker save -o /home/mydocker_images_byjason/mysql_57.tar mysql:5.7
sudo docker save -o /home/mydocker_images_byjason/redis_6.tar redis
sudo docker save -o /home/mydocker_images_byjason/mongo_36.tar mongo:3.6
sudo docker save -o /home/mydocker_images_byjason/nginx.tar nginx:latest
==========起重机的两个microsoft镜像
sudo docker save -o /home/mydocker_images_byjason/aspnet.tar mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim
================dos2unix===linux脚本不能识别的问题=============
yum install dos2unix
doc2unix 01authserver.sh //转换格式
sh 01authserver.sh //执行sh
========docker离线安装redis========
1.导出测试环境的镜像:
docker save > redis.tar redis:latest
2.将镜像导入到要安装的系统中: docker load < redis.tar
3.新建两个挂载目录:/data/redis/conf/,/data/redis/data
4.将准备好的一份redis配置文件上传至目录/data/redis/conf下
5.执行redis启动命令:
docker run -p 6379:6379 --name redis-cqw -v /data/redis/conf/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
//=========Linux查看端口占用情况========
netstat -tunlp | grep 8000
==============minio服务器=================
1:直接下载二进制minio文件
2 运行
=======前端运行======
./minio server start --console-address "0.0.0.0:9000"
=======后端运行======
nohup ./minio server --console-address "0.0.0.0:8090" -address "0.0.0.0:9000" /usr/local/minio/data > /usr/local/minio/logs/minio.log 2>&1 &
3:查看minio是否运行
ps -ef | grep minio
=======Docker安装minio
导出导入
docker run -p 8090:8090 -p 8082:8082 --net=host --name minio -d --restart=always -e "MINIO_ACCESS_KEY=root" -e "MINIO_SECRET_KEY=almz666888@" -v /data/minio/data:/data -v /data/minio/config:/root/.minio minio/minio server /data --console-address ":8090" -address ":8082"
=============Linux awk
[suqadminuserl@iZwzjhytterdw6iu78pZ lmzshells]$ echo 'qw eedd rr' | awk '{print $2}'
eedd
[suqadminuserl@iZwzjhytterdw6iu78pZ lmzshells]$ echo 'qw eedd rr' | awk '{print $3}'
rr
====================获取Docker 容器的ID 和镜像ID====================
echo $(sudo docker ps |grep "qzjcservice:v2" |awk '{print $1}') //如获取起重机的容器ID
[suqadminuserl@iZwz9ewerersd5kgw6iu78pZ ~]$ echo $(sudo docker images |grep "jenkinsci/blueocean" | awk '{print $3}')
fa5cb9ed0469
REPOSITORY TAG IMAGE ID CREATED SIZE
qzjcservice v2 d3a1f91b8adc 5 hours ago 1.45GB
qzjcservice v1 f02ef28969eb 4 months ago 1.44GB
<none> <none> bcfecae2aa6f 5 months ago 3.6GB
mcr.microsoft.com/dotnet/core/sdk 3.1-buster 397f9fc13f1c 8 months ago 710MB
mcr.microsoft.com/dotnet/core/aspnet 3.1-buster-slim 7eb413cc8141 8 months ago 208MB
[wenhan@iz2zea76txemsii7r9mwzwz qzjcservice]$ echo $(sudo docker images |grep "qzjcservice" | awk '{print $3}')
d3a1f91b8adc f02ef28969eb
==================docker network==============================
为新建的容器指定bridge网络
创建新的bridge网络
docker network ls 查看现在的网络
docker network create -d bridge mybridge 创建自己的bridge
创建容器并且指定bridge
docker run -d --name box5 --network mybridge busybox /bin/sh -c "while true;do sleep 3600;done"
docker run -d --name box6 --network mybridge busybox /bin/sh -c "while true;do sleep 3600;done"
运用自己的创建的bridge两个容器之间会自动link
docker exec -it ac1aa7242949 /bin/sh
ping box5
================================================
//重启docker
sudo systemctl restart docker
好了今天就先到这里,下次有时间再更新,如果存在不合理的地方,欢迎大家多多指教留言!!!