docker总结

1、虚拟机、docker

虚拟机(虚拟化)重量级,包含完整系统;
docker(容器化)轻量级,包含增量差异化,另一个装了docker的机器也可以运行,差异的是机器和机器的区别。

2、常用命令

docker构建docker build
docker运行docker run

3、架构

在这里插入图片描述
在这里插入图片描述

4、安装docker

卸载docker:yum remove docker*
配置docker的yum源,安装docker要用的yum工具类和必要依赖:yum install -y yum-utils
(执行报Could not resolve host: mirrors.)
在这里插入图片描述
配置docker的安装源地址(系统就知道docker去哪下载):
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装docker

yum install -y docker-ce docker-ce-cli containerd.io
docker-ce docker服务器
docker-ce-cli docker命令行
containerd.io docker服务器运行环境
上面默认安装最新版本,如果要指定版本为yum install -y docker-ce-19.0.3等

启动

systemctl enable docker --now
既要开机启动也要立即启动
docker ps
docker info查看docker详细信息

配置加速

在这里插入图片描述
文本版本:
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“http://hub-mirror.c.163.com”],
“exec-opts”: [“native.cgroupdriver=systemd”],
“log-driver”: “json-file”,
“log-opts”: {
“max-size”: “100m”
},
“storage-driver”: “overlay2”
}
EOF

docker配置国内镜像
新建配置文件:/etc/docker/daemon.json,加入以下内容:
tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“https://docker.mirrors.ustc.edu.cn/”, “https://hub-mirror.c.163.com/”, “https://reg-mirror.qiniu.com”]
}
EOF
当然可以使用国内其他的镜像地址,
https://registry.docker-cn.com
http://hub-mirror.c.163.com
https://3laho3y3.mirror.aliyuncs.com
http://f1361db2.m.daocloud.io
https://mirror.ccs.tencentyun.com

配置好后,重启docker
systemctl daemon-reload
systemctl restart docker
查看镜像地址
docker info

5、应用镜像下载

去dockerhub上获取命令https://hub-stage.docker.com/
例如Nginx进行搜索
在这里插入图片描述
docker pull nginx --verbose默认是最新版本,网页中的tags标签都是各个不同的版本。如果制定版本则使用docker pull nginx:1.20.1。

查看下载的本地docker镜像docker images
在这里插入图片描述
删除镜像文件docker rmi nginx/4cdc5dd(镜像名:版本号/镜像id)

6、应用镜像运行为容器

运行容器包含启动的所有参数,可以用update修改,运行容器又可以修改保存生成新的镜像。
docker run --help,–name是启动应用实例名称,-d后台运行,-p映射端口,–restart=always表示启动的应用开机自启。
例如docker run --name=mynginx2 -d -p 8888:80 --restart=always nginx

docker run --name=mynginx -d nginx
docker ps 查看正在运行中的应用程序,运行中的应用程序为容器。
在这里插入图片描述
docker ps -a可以查看停掉的应用容器,注意容器停掉后name=mynginx仍然存在,因此可以删掉已经停了的应用容器docker rm mynginx/8656,正在运行的不能删除,除非使用docker rm -f mynginx/8656。
在这里插入图片描述
在这里插入图片描述
停止运行容器docker stop mynginx/8656
再次运行停止的容器docker start mynginx/8656
再次单独执行docker run --name=mynginx2 -d -p 8888:80 nginx会根据镜像再次实例化启动一个容器。
在这里插入图片描述
不加-p默认的80端口是容器内的端口,容器内端口不代表容器外部虚拟机端口,容器内端口需要映射到外部虚拟机端口来暴露容器外访问端口进行访问,即案例中的8888
在这里插入图片描述
在这里插入图片描述
如果容器缺少了某个启动参数(例如系统重启后自启动)
使用docker update mynginx2 --restart=always,update不能修改端口。

7、修改容器里的内容,例如页面。

利用如下命令进入容器的命令后台
docker exec -it xxx /bin/bash (有的是/bin/sh)
在这里插入图片描述
在这里插入图片描述
上面运行容器修改后可以提交生成为一个新的镜像
docker commit -a “zhouwei” -m “首页变化” xxx zwnginx:v1.0
在这里插入图片描述

8、镜像机器间传输

docker save -o zwnginx.tar zwnginx:v1.0
传输命令
scp zwnginx.tar root@192.168.56.101:/opt/docker/
在这里插入图片描述
在这里插入图片描述
传输到另一台机器后需要加载到docker管理中
docker load -i zwnginx.tar
在这里插入图片描述
压缩包(未纳入docker管理)->镜像(管理docker images)->容器(docker ps)

9、自定义docker镜像推送到远端dockerHub

docker tag {local-image:tag-name} {new-repo:tag-name} 即在本地生成了一个远端镜像
docker login/logout
docker push {new-repo:tag-name}
在这里插入图片描述
推到dockerHub后其他装有docker的机器可以docker pull。

10、Docker运行容器挂载数据到外部修改(区别于上面docker exec -it进入docker修改)

在这里插入图片描述
增加启动参数-v将容器某个目录数据挂载到主机的某个目录,ro=readonly,rw=readwrite
docker run --name=mynginx -d -p 88:80 --restart=always
-v /opt/docker/zwnginx_dir/:/usr/share/nginx/html/:ro zwnginx:v1.0
注意容器挂载到外部后,容器本身的内容如页面路径等失效,此时直接访问报403,起效的是主机目录。
之间将运行容器中的目录复制到外部目录即可:
docker cp xxx:/usr/share/ngnix/ /opt/docker/zwngnix_dir/
在这里插入图片描述
注意:挂载到外部目录后,外部目录会覆盖运行容器里的目录
经常修改nginx配置文件可以挂载到外部目录
可以写多个-v挂载多个目录
在这里插入图片描述

11、查看docker运行容器日志

docker logs xxx
在这里插入图片描述

12、Java应用打包docker镜像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值