docke容器学习,docker基础命令,docker常用命令

 docke容器学习,docker基础命令
centos7安装docker
 

docker常用命令

docker info
docker --help
docker search nginx
docker rmi nginx 删除镜像
docker pull mysql:latest
docker images
docker run --name mysql-master-a -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql
docker ps
docker run -it -name
docker start id
docker stop id
docker rm id 删除容器
docker logs -f tail
docker inspect id
docker attach
docker exec
docker cp
docker commit -am id name:tage
docker build --tag bulletinboard:1.0 .
docker run --publish 8000:8080 --detach --name bb bulletinboard:1.0
docker rm --force bb
 docker network ls 查看镜像网桥
docker network create -d bridge ems 创建自定义网桥
docker create volume  aa 创建数据卷
设置容器自启动:
新创建容器:docker run -p 3306:3306 --restart=always --name mysql -d mysql:5.7

已创建容器:docker update --restart=always mysql

 docker内安装vi、vim、telnet、ifconfig、ping命令

apt-get update
apt-get install vim 安装vim

apt-get install telnet 安装telnet

apt-get install net-tools 安装ifconfig

apt install iputils-ping 安装ping

 

 
0
 
 
数据卷--数据共享
docker -run -it -v /宿主机路径:/容器内的目录 镜像名
 
 docker commit命令 提交镜像改变,成为一个新的镜像
docker save -o abc.jar 保存镜像成为一个文件
docker load -i abc.jar  文件加载成为一个镜像
 

dockerfile使用教程

 

 

 

 

注意:exec和-it的命令,exec -it是容器启动完进入到容器内,-it是容器启动中进入到容器内

 

dockerfile案例展示

FROM centos
env mypath /tmp
workdir $mypath
run yum -y install vim
run yum -y install net-tools
expose 8080
cmd /bash/bin
 
安装mysql
docker run -p 12345:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD="123456" -d mysql:5.7
 
from centos:7
run yum install -y vim或者run ["yum","install","-y","vim"]
 注意:必须暴露端口,才能对外映射 expose 8080
 
 
 
0

 docker网络通信

 

 

 

 

 

Docker 网络

Docker 会在被安装后自动创建三个默认网络,它们分别为 Bridge,None,以及 Host。使用 docker network ls 可以查看可用的网络。创建容器时,可以使用 --network 选项设置需要连接的网络。
1. None 是无网卡,None 设定之后 Docker 不会给该容器创建网卡,并且之后 Docker 无法直接对其进行网络配置。只有进入容器中才可以进行网络配置与查看
2. Host 是直接使用宿主机的网络,它解除了网络隔离,直接占用宿主机的端口。这样也可以直接使用宿主机的网络访问容器。同时 Docker 也无法直接对host进行网络配置
3. Bridge 则是网桥,创建网络的默认方式。当 Docker 启动时,会自动在主机上创建一个名为 Docker0 虚拟网桥,它会在挂载到它的网口之间进行转发。当我们创建一个新的容器时,同时会创建了一对 veth pair 接口(即对等接口,当数据包发送到一个接口时,另外一个接口也可以收到相同的数据包)。这对接口一端在容器内,即 eth0;另一端在本地并被挂载到 Docker0 网桥,名称以 veth 开头。通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。

 

 docker数据卷

 docker核心架构图

 

 dockerfile原理学习

 

 

 

 docker-compose使用

常用命令:

 docker-compose -v 查看版本

docker-compose up 启动

docker -compose -f name up 指定文件名启动

docker-compose down 停止服务

 

 

 

 

 

 

 

 

 

 

 

 需要更新组件:组件地址:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

docker 修改镜像地址https://www.cnblogs.com/doraman/p/12353148.html

修改docker desktop的数据位置:https://www.cnblogs.com/ltaodream/p/14880031.html

 参考学习视频:https://www.bilibili.com/video/BV1ZT4y1K75K?p=13

                        https://www.bilibili.com/video/BV1og4y1q7M4?p=18

                       https://www.bilibili.com/video/BV13Q4y1C7hS?p=19&spm_id_from=pageDriver

docker常见错误

Error response from daemon: open /var/lib/docker/overlay2/XXX: no such file or directory

解决办法:

/ 可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络

执行docker system prune -af

daemon.json设置

{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ],
  "data-root": "/home/docker"
}

systemctl stop docker 改配置,然后systemctl daemon-reload && systemctl start docker

Docker 将已经部署的容器设置为自动启动

docker update --restart=always 8b1e7f0578d9(容器id)

 

 

 用docker inspect验证是否成功

 

posted @ 2021-03-12 02:55  刘百会  阅读(137)  评论(0编辑  收藏  举报