高级java 之docker 学习
1.Docker 安装与卸载
首先第一步 先看看自己的linux 上面是否有docker 如果有先卸掉
1.卸载docker
#卸载命令
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
rm -rf /etc/systemd/system/docker.service.d
rm -rf /var/lib/docker
rm -rf /var/run/docker
2.安装docker
#首先安装一些必要的系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
# 软件源 (建议使用这个国内的)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 这个命令是将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度,yum 会把下载的软件包和header存储在cache中而不自动删除。如果觉得占用磁盘空间,可以使用yum clean指令清除缓存。
yum clean all yum makecache fast
#安装
yum -y install docker-ce
#开启docker 服务
systemctl start docker
#docker 服务设置为开机启动
systemctl enable docker
3.配置镜像加速
#1.注册登录开通阿里云容器镜像服务
#2.查看控制台,招到镜像加速器并复制自己的加速器地址
#3.找到/etc/docker目录下的daemon.json文件,没有则直接
vim /etc/docker/daemon.json
#4.加入以下配置
2.配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件 /etc/docker/daemonjson 来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon. json <<-'EOF
registry-mirrors”: ["https://i3agy04j.mirror.aliyuncs.com”]
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2.Docker 常用命令
1. 帮助命令
1.1 查看docker 的版本信息
docker version #查看docker 的版本信息
1.2 显示docker 的系统信息 包括容器和镜像的数量
docker info #显示docker 的系统信息 包括容器和镜像的数量
1.3 帮助命令
docker 命令 --help
2. 镜像命令
1.查看所有镜像
docker images # 查看所有本机上的的镜像
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像的id
CREATED 镜像的创建空间
SIZE 镜像的大小
#可选项
-a #列出所有镜像 比如 docker images -a
-q #只显示镜像的id docker images -aq
2.docker 搜索
docker search mysql #所有版本的mysql镜像
3.下载镜像
docker pull mysql # 默认下载mysql 最新版 docker pull mysql:指定版本
3.删除镜像
1.删除镜像
docker rmi -f 镜像id 或名称 #删除指定的容器
docker rmi -f $(docker images -aq) # 删除所有的容器
4. 容器命令
1.新建容器并启动
docker run -it centos /bin/bash #启动并进入容器
exit #退出容器
ctrl +p +q #退出容器,容器不停止
docker ps # 列出所有正在运行的容器
docker ps -a # 列出所有运行过的容器
docker ps -aq -n=1 #最近运行的一条容器记录
2.删除容器
docker rm 容器id #删除指定容器
docker rm -f #强制删除容器
docker rm -f $(docker ps -aq)
docker ps -a -q|xargs docker rm
3, 启动和停止容器
docker start 容器id # 启动容器
docker stop 容器id # 关闭容器
docker restart 容器id # 重启容器
docker kill 容器id # 强制停止容器
5.其他常用命令
1.查看日志
docker logs -f -t -tail 10 容器id
2.查看进程信息
docker top 容器id
3.查看镜像元数据
docker inspect 容器id
[
{
"Id": "sha256:c0cdc95609f1fc1daf2c7cae05ebd6adcf7b5c614b4f424949554a24012e3c09",
"RepoTags": [
"mysql:latest"
],
"RepoDigests": [
"mysql@sha256:d50098d7fcb25b1fcb24e2d3247cae3fc55815d64fec640dc395840f8fa80969"
],
"Parent": "",
"Comment": "",
"Created": "2021-05-12T08:10:33.02552788Z",
"Container": "d52eeb7ba24f013ff83a9438018e7a3f4f0f19fec2a02c8908810f7bef7285aa",
"ContainerConfig": {
"Hostname": "d52eeb7ba24f",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"3306/tcp": {},
"33060/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"GOSU_VERSION=1.12",
"MYSQL_MAJOR=8.0",
"MYSQL_VERSION=8.0.25-1debian10"
],
"Cmd": [
"/bin/sh",
"-c",
"#(nop) ",
"CMD [\"mysqld\"]"
],
"Image": "sha256:b88bc1729a7e6769679c1829f502e848acc0470dac85dcccc56d534c2327ef3a",
"Volumes": {
"/var/lib/mysql": {}
},
"WorkingDir": "",
"Entrypoint": [
"docker-entrypoint.sh"
],
"OnBuild": null,
"Labels": {}
},
"DockerVersion": "19.03.12",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"3306/tcp": {},
"33060/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"GOSU_VERSION=1.12",
"MYSQL_MAJOR=8.0",
"MYSQL_VERSION=8.0.25-1debian10"
],
"Cmd": [
"mysqld"
],
"Image": "sha256:b88bc1729a7e6769679c1829f502e848acc0470dac85dcccc56d534c2327ef3a",
"Volumes": {
"/var/lib/mysql": {}
},
"WorkingDir": "",
"Entrypoint": [
"docker-entrypoint.sh"
],
"OnBuild": null,
"Labels": null
},
"Architecture": "amd64",
"Os": "linux",
"Size": 555721468,
"VirtualSize": 555721468,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/254085bcf16309df694c2714748f66d5cea8f0ce7f655e0856fa61438ae5bfc4/diff:/var/lib/docker/overlay2/35ce036796440c8573bdafd2350e5be43fc8a67d0e3c9f5d99c647d7066937fc/diff:/var/lib/docker/overlay2/c27881c8b0b1e18192b59189b7fe894f96c31338ca499e96db7b3561ab9fdd9e/diff:/var/lib/docker/overlay2/19d5e517926548ec3a6b651f715df580ecc100f67a4571343bbf80a247d56f86/diff:/var/lib/docker/overlay2/1516b3fda8f18bec6cd07cc4c755d1a6b873029c40566e516c2d0046b8363d53/diff:/var/lib/docker/overlay2/ca57f71c62950e897718be96ff6d41e79a83f19a5af7d0d9376d7a1cf6940aff/diff:/var/lib/docker/overlay2/efb49e7c9a27755e8f79a7183df016bc04940805caad1cef2e26f15c659d0922/diff:/var/lib/docker/overlay2/270e4abb556053aeba188a69b1f1f1fec6eaffa396b74eb20377c7d7db9b7e90/diff:/var/lib/docker/overlay2/78805a5d3b234e1632cfd8b9d5d3d1335edc8600e41caa6b04547ac227b0ecc0/diff:/var/lib/docker/overlay2/009924b79545e0b936f2240761aa147e5ffae0ea2071f4c487318f0efb10b65b/diff:/var/lib/docker/overlay2/b83d810f5449244439140a7cbe9833cf4a020249adaf8d96333968f77763b088/diff",
"MergedDir": "/var/lib/docker/overlay2/6d59628fbb092c492cb243754befeb7e2f0af084c0eb52e3022c07645d9703a7/merged",
"UpperDir": "/var/lib/docker/overlay2/6d59628fbb092c492cb243754befeb7e2f0af084c0eb52e3022c07645d9703a7/diff",
"WorkDir": "/var/lib/docker/overlay2/6d59628fbb092c492cb243754befeb7e2f0af084c0eb52e3022c07645d9703a7/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:02c055ef67f5904019f43a41ea5f099996d8e7633749b6e606c400526b2c4b33",
"sha256:14be0d40572c9e789898075dab874a65268de67962d8fd775172b206a9305022",
"sha256:e82f328cb5e68d3c0fcc6604b3c09a2898d94fde76f589abc5163c85e168a075",
"sha256:b2abc2ad4a418fb408384c726f800fa1f722cbb38987200cd362bc73f20cc988",
"sha256:570df12e998cd93e68915a6de7002f9ca1e4b21bbaca3cd1124b7770c800b1b4",
"sha256:ae477702a51387de5407cbaad4e225c3b3ddfb329cb1b00739b4161fe34d80a6",
"sha256:3182d4b853f01f95a1cc30cd97c3e5e4d1aa3011ba4cf6273c2d5b38ef1adba0",
"sha256:cffd1f984514c0d9cfcd194afd4fef20c4012e40d00bfe75c669d5bbec0d2e17",
"sha256:ea5fd90d1e58fbcd9b68a0cd7daccf8426ac7b0d6c941a877de20b4d234d5d5d",
"sha256:74634a9cf30b3935c6e55d5181a6db20f8ae0163368f6bb2fbf6bc29ab3fe80c",
"sha256:d605c112cfabb4f748db106728e61b5a47ee084381c6f94e6b3fca60ccfb4889",
"sha256:03a007e88ba3d564d357aad39dd30e9979a7dcfb2329359c6fd9a9533c6442e6"
]
},
"Metadata": {
"LastTagTime": "0001-01-01T00:00:00Z"
}
}
]
4.进入正在运行的容器
docker exec -it 容器id /bin/bash
5.从容器内拷贝文件到主机上
docker cp 容器id:/home/a.txt 容器文件路径 /home 需要拷贝到主机的位置
6.进入正在运行的容器
docker exec -it 容器id /bin/bash
7.从容器内拷贝文件到主机上
docker cp 容器id:/home/a.txt 容器文件路径 /home 需要拷贝到主机的位置