微服务:2-Docker容器基础入门

Docker容器基础入门

1 linux下环境安装docker

环境:Centos 7

安装条件:docker 3.10以上

操作:

[root@slave1 yum.repos.d]#cd /etc/yum.repos.d/
## 关闭防火墙
[root@slave1 yum.repos.d]#systemctl stop firewalld.service
[root@slave1 yum.repos.d]#wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
## 查看docker安装包
[root@slave1 yum.repos.d]#yum list|grep docker
## 安装社区版
[root@slave1 yum.repos.d]#yum install -y docker-ce.x86_64
## 设置开机启动
[root@slave1 yum.repos.d]#systemctl enable docker
## 更新xfsprogs
[root@slave1 yum.repos.d]#yum -y update xfsprogs
[root@slave1 yum.repos.d]#systemctl start docker
[root@slave1 yum.repos.d]#docker version
[root@slave1 yum.repos.d]#docker info

2 如何搜索docker镜像

  • 查看本地镜像 docker images
  • 搜索镜像 docker search centos
  • 过滤官方镜像 docker search --filter “is-official=true” centos
  • 过滤大于多少颗星星的 docker search --filter stars=10 centos
  • 下载centos7镜像 docker pull centos:7
  • 修改本地镜像名字(小写) docker tag centos:7 mycentos:1
  • 本地镜像的删除 docker rmi centos:7

3 配置阿里云镜像

  • 配置步骤
    登录阿里云 --> 镜像加速器 --> 复制地址
[root@slave1 ~]# vi /etc/docker/daemon.json
{"registry-mirrors": ["https://5xok66d4.mirror.aliyuncs.com"] }
重启:
[root@slave1 ~]#systemctl daemon-reload&&systemctl restart docker

4 docker容器基本操作

  • 构建容器 docker run -itd --name=mycentos centos:7

    • -i 表示以交互模式运行容器
    • -d 后台运行容器,返回容器ID
    • -t 为容器重新分配一个伪输入终端
    • –name 指定名称
  • 查看本地所有的容器 docker ps -a

  • 查看本地正在运行的容器 docker ps

  • 停止容器 docker stop CONTAINER_ID/CONTAINER_NAME

  • 一次性停止所有容器 docker stop $(docker ps -a -q)

  • 启动容器 docker start CONTAINER_ID/CONTAINER_NAME

  • 重启容器 docker restart CONTAINER_ID/CONTAINER_NAME

  • 删除容器 docker rm CONTAINER_ID/CONTAINER_NAME

  • 强制删除容器 docker rmi -f CONTAINER_ID/CONTAINER_NAME

  • 查看容器详细信息 docker inspect CONTAINER_ID/CONTAINER_NAME

  • 进入容器
    docker exec -it CONTAINER_ID /bin/bash

    • 退出
      exit

5 容器与宿主主机之间文件复制与挂载

  • 从宿主机复制到容器
    • docker cp 宿主机本地路径 容器名字/ID:容器路径
# 将123文件复制到容器
[root@slave1 opt]# docker ps -a
CONTAINER ID   IMAGE      COMMAND       CREATED          STATUS          PORTS     NAMES
2675c91a2007   centos:7   "/bin/bash"   16 minutes ago   Up 13 minutes             affectionate_moore
[root@slave1 opt]# docker cp /opt/123.txt 2675c91a2007:/home/
	
  • 从容器复制到宿主机
    • docker cp 容器名字/ID:容器路径 宿主机本地路径
# 进入容器,创建文件,然后退出;再复制
[root@slave1 opt]# docker exec -it 2675c91a2007 /bin/bash	[root@2675c91a2007 /]# vi 456.txt
[root@2675c91a2007 home]# exit
[root@slave1 opt]# docker cp 2675c91a2007:/home/456.txt /opt
  • 宿主机文件夹挂载到容器里
    • docker run -itd -v 宿主机路径:容器路径 镜像ID
# 文件夹挂载,启动centos:7容器,进入容器目录,
[root@slave1 opt]# docker run -itd -v /opt/xd/:/home centos:7
511eb96135a7f0eb59fe4bc851ae147763edf35baa7d05fe92810d99a466f262
[root@slave1 opt]# docker ps -a
CONTAINER ID   IMAGE      COMMAND       CREATED              STATUS              PORTS     NAMES
511eb96135a7   centos:7   "/bin/bash"   About a minute ago   Up About a minute             exciting_proskuriakova
2675c91a2007   centos:7   "/bin/bash"   16 hours ago         Up 16 hours                   affectionate_moore
[root@slave1 opt]# docker exec -it 511eb96135a7 /bin/bash
[root@511eb96135a7 /]# cd /home
[root@511eb96135a7 home]# ls
[root@511eb96135a7 home]# ls -lrt
total 0
[root@511eb96135a7 /]# cd /home
# 容器内新建文件,宿主机xd目录出现相同的文件
[root@511eb96135a7 home]# vi 44.txt
[root@511eb96135a7 home]# ls
44.txt  ee.txt
[root@511eb96135a7 home]# exit
exit
[root@slave1 xd]# ls
44.txt  ee.txt
# 宿主机xd目录创建456.txt文件,容器内同步出现
[root@slave1 xd]# vi 456.txt
[root@slave1 xd]# docker exec -it 511eb96135a7 /bin/bash
[root@511eb96135a7 /]# cd /home
[root@511eb96135a7 home]# ls
44.txt  456.txt  ee.txt
  • 适用场景 :宿主机挂载文件给容器适用,容器宕死这样文件不会被删除,宿主机可以新建容器将文件再挂载给新容器适用,原容器可以之间删除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rong742954

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值