Docker安装和使用

一、关键词
  • 镜像和容器
Dokcer镜像:相当于Java类Class
Docker容器:相当于Java对象Object
通过类创建对象,通过镜像创建容器

镜像:只读状态,安装应用包,包含依赖整体的环境,镜像启动后就是容器
容器:类似启动的程序,可以依据镜像启动多个,名称要不一样
  • docker仓库
Docker 仓库 - Docker registeries: ⽤来保存镜像,有公有和私有仓库,好⽐Maven的中央仓库和本地私服

二、安装Docker(CentOS)
  • 依次运⾏以下命令添加更新yum源
yum update
yum install epel-release -y
yum clean all
yum list

​ 2.1 方式1:快速安装并运行docker

yum install docker-io -y
systemctl start docker

  1. ​ 2 方式2: 根据Linux系统选择合适的Docker版本进行安装
  • 参考可安装的版本命令为:yum list docker-ce --showduplicates|sort -r

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HGWIcDOC-1639322105686)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1637220429031.png)]

版本号为 docker-ce-18.06.0.ce

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KKLbaq6F-1639322105688)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1637220652788.png)]

安装命令为 yum install docker-ce-18.06.0.ce -y # 中间用 - 连接

红框下面的版本也可以正常安装成功:yum install docker-ce-17.09.0.ce -y

一直等这下载安装完毕即可

2.3 安装完成后检查

  • 检查安装结果
docker info
docker -v 或 docker version 可查看安装的具体版本信息
  • 启动使⽤Docker
systemctl start docker #运⾏Docker守护进程
systemctl stop docker #停⽌Docker守护进程
systemctl restart docker #重启Docker守护进程
systemctl status docker #查看docker的启动状态信息
  • 验证是否正确安装

    • 先启动 sudo systemctl start docker

    • 通过运行hello-world 映像验证是否正确安装了Docker Engine ,如下图

    • sudo docker run hello-world

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tGYuSciy-1639322105689)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1637227328806.png)]

  • ⼀个命令部署Nginx

docker run --rm --name nginx-xdclass -p 8080:80 -d
nginx
docker run --name mynginx2 --network=host -p 8080:80 -d nginx:1.20.2
--rm:容器终⽌运⾏后,⾃动删除容器⽂件。
--name nginx-xdclass:容器的名字叫做nginx-xdclass,名字⾃⼰定义.
-p: 端⼝进⾏映射,将本地 8080 端⼝映射到容器内部的 80 端⼝
-d:容器启动后,在后台运⾏

docker ps 查看容器
docker stop 容器id
  • 修改镜像仓库
vim /etc/docker/daemon.json
#改为下⾯内容,然后重启docker
{
"debug":true,"experimental":true,
"registry-mirrors":
["https://pb5bklzr.mirror.aliyuncs.com","https://hub
-
mirror.c.163.com","https://docker.mirrors.ustc.edu.c
n"]
} 
#查看信息
docker info
三、常用命令
  • 安装部署好Docker后,执⾏的命令是docker开头
  • xxx是具体某个镜像名称
  • 搜索镜像: docker search xxx
  • 列出当前系统存在的镜像: docker images
  • 拉取镜像: docker pull xxx
    • xxx是具体某个镜像名称(格式 REPOSITORY:TAG)
    • REPOSITORY:表示镜像的仓库源
    • TAG:镜像的标签运⾏⼀个容器
    • 例如 docker pull mysql:5.7
  • **运⾏⼀个容器 **
docker run --name nginx_xd -p 8080:80 -d nginx
docker run - 运⾏⼀个容器
-d 后台运⾏
-p 端⼝映射  8080:80  左边对外开放的端口,右侧为本身端口号
--name "xxx" 容器名称,自定义名称,容器名称不能相同

案例 docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
  • 列举当前运⾏的容器: docker ps
  • 列举全部 容器 : docker ps -a
  • 检查容器内部信息: docker inspect 容器名称
  • 删除镜像: docker rmi IMAGE_NAME
    • 强制移除镜像不管是否有容器使⽤该镜像 增加 -f 参数
  • 停⽌某个容器: docker stop 容器名称
  • 启动某个容器: docker start 容器名称
  • 移除某个容器: docker rm 容器名称 (容器必须是停⽌状态)
  • 查看容器启动⽇志
    • docker logs -f containerid
四、卸载

卸载分为两个步骤,先是使用yum移除安装软件,再使用rm删除docker创建的文件夹即可,参考如下:

  • 1、卸载docker软件包

    $sudo yum remove docker-ce
    
  • 2、主机上的镜像、容器、存储卷、定制配置文件不会自动删除,如需删除所有镜像、容器、和存储卷,请运行下列命令

    $sudo rm -fr /var/lib/docker
    

    yum remove docker-ce

    rm -rf /var/lib/docker

    # rm -rf /etc/docker

    # rm -rf /run/docker

    # rm -rf /var/lib/dockershim

    # rm -rf /var/lib/docker

五、问题解决
  • 安装最新版运行hello world时的错误

错误一:

docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: ux.go:297: copying bootstrap data to pipe caused “write init-p: broken pipe”":

错误二:

docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "process_linux.go:245: running exec setns process for init caused “exit status 29"”

解决方案:切换安装版本,切换至本例中的第二种安装版本方式。

六、Docker设置阿里云镜像加速
  • 目的:绕过Docker国外的下载龟速

    • 通过修改daemon配置文件 /etc/docker/daemon.json来使用加速器

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7cEmAp0d-1639322105690)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1637221462002.png)]

    • 将{ }中间的内容存储至 /etc/docker/daemon.json 目录文件中(修改之前此文件为空内容)

    • 并执行下列的两个命令,重新加载deamon配置文件和重启docker,重启docker是必须的

    systemctl daemon-reload
    systemctl restart docker
    
七、镜像仓库

公有仓库,保存了大量镜像

https://registry.hub.docker.com/search?type=image

八、docker修改容器配置文件
  • 1、进入容器内部

    sudo docker exec -it 容器名或ID /bin/bash
    
  • 2、退出容器 exit

  • 3、 安装vim命令

    apt-get update   # 更新软件列表  
    apt-get install vim  # 安装vim命令
    
  • 4、修改配置文件

    找到配置文件路径及其内容,如果要修改端口或者其他内容直接编辑配置文件即可
    whereis  dirname    #命令用于查找文件
    find / -name "default.conf"   # 在/根目录下查找文件
    find /etc -name “default.conf”   # 在/etc目录下查找文件
    
    
    
  • docker镜像都是独立的,在一个容器中安装了vim命令,在其他容器中使用vim 命令是不生效的,需要在每个镜像中都安装vim或vi

九、容器网络配置

在运行时加上 docker run --network=选项指定

  • host模式:使用 --net=host 指定。
  • none模式:使用 --net=none 指定。
  • bridge模式:使用 --net=bridge 指定,默认设置。
  • container模式:使用 --net=container:NAME_or_ID 指定。
ping命令不通(安装时保证主机能连接外网)
因为用Docker拉取的Base镜像如Centos和Ubuntu的话都是最简版本,不包含Ping工具,而对Docker进行Docker network和Docker链接操作时往往要用到Ping工具测试两个容器间的网络,此时就要用到Ping工具了,下面是Ubuntu下安装Ping工具的命令:

    sudo apt-get update && apt-get install iputils-ping
最后、案例实验

完成mysql的安装部署和连接

完成jenkins安装部署和访问

完成nginx安装部署

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值