Docker的简单使用和命令说明

Docker的简单使用和命令说明

官网镜像路径:https://hub.docker.com

有OFFICAL IMAGE标签的就是官方的镜像,个人镜像区别就是版本,配置有些不一样

可以在镜像下面的介绍中配置启动参数,可以达到修改参数的目的

核心概念

镜像:容器的静态文件(类似Java中的实体类.java文件)

容器:从镜像运行启动的虚拟容器(类似Java中实例化的对象)

安装:

先卸载旧版的docker

sudo yum remove docker-ce \
                docker-ce-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine

安装工具:

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

配置yum仓库地址


sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
sudo yum-config-manager \
     --add-repo \
     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

一般用下面那个阿里云的

更新yum缓存

sudo yum makecache fast

从远程获取在线文件安装docker

sudo yum install docker-ce docker-ce-cli containerd.io

启动测试:

docker是以服务形式启动的:

sudo systemctl start docker

配置开机启动(服务设置为自动)

sudo systemctl enable docker

需要配置一下docker的镜像加速器

cat <<EOF > /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://dockerhub.azk8s.cn",
    "https://hub-mirror.c.163.com"
  ]
}
EOF

配置后记得重启

# 重新加载docker配置
sudo systemctl daemon-reload

#重启docker服务
sudo systemctl restart docker

完成后就可以查看镜像配置了

docker info

镜像操作命令说明:

拉取镜像

从远程镜像仓库拉取centos7,centos是Repository,7是Tag(版本)Tag需要去docker官网查询,里面版本有区别(比如docker系统环境,其他配置,比如带不带RabbitMQ的Management功能),如果Tags不指定的话就是latest

docker pull centos:7

镜像需要一层一层的下载,比如最底层需要用操作系统,然后进行安装,再进行配置,最后可能还有容器的配置

如果执行了运行镜像命令,docker会检查是否存在该镜像,如果不存在会自动从远程仓库下载

查看镜像

#命令1
docker images
#命令2
docker image ls
#命令3:查看镜像配置过程
docker history redis

运行镜像–简单

docker run -it xxxx bash

xxxx - 镜像名, 或 image id 的前几位,足够区分即可
-it 这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。
bash 放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 bash。

删除镜像

docker rmi [image] [image]
docker image rm [image] [image]

这两条都可以,也可以写镜像的id前几位足够区分即可(至少3位)

只要这个镜像启用过,不管现在容器是否在启动状态,都会占用这个镜像,需要加一个-f参数强制删除

镜像导出

docker save mysql:5.7 node:8 | gzip > app.tar.gz  

这里是导出2个镜像

镜像从本地导入

docker load < apps.tar.gz  
docker load -i xxx.gz

容器操作命令说明

运行镜像–详细

一个镜像可以运行多个容器,这条命令后可以执行一条命令,比如加bash命令,启动命令行

docker run --name redis -p 6379:6379 -dit redis bash

-d:表示后后台运行,后台运行可以不加参数i和t

–name:指定一个镜像名称

-p:指定启动端口,从容器的6379端口,映射到宿主机的6379端口,可以指定多个-p映射端口,例如rabbitmq需要映射15672和5672两个端口(windows访问该容器需要在VMware的Linux防火墙中打开端口)

docker run \
-it \
--name centos7 \
centos:7 \
bash

可以通过反斜杠使得命令更简单易读

执行命令后自动进入容器,执行命令即在容器内执行

-it参数必须要加,不然容器启动后,没有执行命令,应用结束,容器也就结束了(当执行exit之后容器也会结束)

加bash后直接进入容器,不加bash还在宿主机命令行,如果是docker运行环境是Linux的话,可以不加bash启动(可以参照history看有没有默认设置),保险起见,还是需要加的

退出的话执行exit即可

log日志输出

docker container logs xxx

查看容器

docker container ls -a
# 一般写下面那个
docker ps -a

中止/重启容器

docker container stop 802
docker container restart 802

进入容器bash

这里可以用启动时候指定的容器名字启动,也可以用id

docker exec -it 802 bash

删除容器

在出现运行中的重名的容器的时候,则需要删除一个容器

docker container rm 802

如果容器正在运行,需要加-f参数强制删除容器

清理所有终止状态容易

docker container prune

一些问题

WARNING: IPv4 forwarding

一般是宿主机的网络环境出现变化,比如修改ip地址,重启虚拟机,或者开关防火墙等

通过systemctl重启docker的服务即可解决

sudo systemctl restart docker
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读