docker安装及常用的命令

docker的安装

1.在线安装docker
官方文档手册:https://docs.docker.com/install/linux/docker-ce/centos/
2.先将旧版docker卸载


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


2.安装一组工具

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

3.设置yml仓库地址

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

4.更新yml缓存

sudo yum makecache fast

5.安装新版docker

sudo yum install docker-ce docker-ce-cli containerd.io
启动测试

1.启动docker

sudo systemctl start docker

2.设置开机自动启动

sudo systemctl enable docker

3.运行hello-world镜像,验证docker安装成功

sudo docker run hello-world

在这里插入图片描述

运行成功如图所示代码,如果测试没有成功,请添加以下配置,然后重启docker

镜像加速

由于国内网络问题,需要配置加速器来加速。
修改配置文件 /etc/docker/daemon.json

下面命令直接生成文件 daemon.json

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

docker镜像操作

1.下载镜像
https://hub.docker.com/
在这里插入图片描述
在这里插入图片描述
如图所示搜索添加命令
2.离线添加镜像,将自己本地电脑里的镜像上传
执行导入的命令

docker load -i 文件名
或者
docker load < 文件名

查看导入的镜像

docker images
或
docker image ls
centos 7 容器
docker run -it centos:7 ls
docker run -it centos:7 ps
docker run -it centos:7 top
docker run -it centos:7 bash
# 回到宿主机
exit
  • -it 这是两个参数,一个是 -i:交互式操作,一个是 -t:进入终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。
  • bash 放在镜像名后的是命令,这里我们希望有个交互式的shell,因此使用bash
# 参数 d 是后台运行
# 如果不指定运行命令,容器会运行镜像设置的一个默认命令
# centos:7镜像设置的默认命令是 bash
docker run -dit centos:7
# 查看镜像设置
docker history centos:7
# 查看正在运行的容器
docker ps

进入容器后,运行指定的命令

docker exec -it 76f(镜像id前三位,内容随机) mkdir d1

docker exec -it 76f ls
docker exec -it 76f touch d1/f1
docker exec -it 76f ls d1
docker exec -it 76f bash
# 退出容器的命令,回到宿主机
exit
文件夹挂载
# --name 容器命名
# --rm 容器终止时,自动删除

docker run \
-dit \
--name centos7 \
--rm \
-v /usr/app:/opt/app \
centos:7

# 查看容器描述
docker inspect centos7

# 进入容器
docker exec -it centos7 bahs

# 在容器中,进入/opt/app目录
cd /opt/app

# 在目录下生成一个文件
echo aaaaaa > f1

# 查看文件
ls
cat f1

#回到宿主机查看文件
exit
cd /usr/app
ls
cat f1
数据卷挂载

数据卷挂载本质就是目录挂载
给目录路径起一个名字,用一个方便的名称来表示一个目录的路径

# 停止前面的容器, 停止时,容器会自动删除
docker stop centos7

# 创建数据卷 my-vol
docker volume create my-vol

# 查看数据卷的真实路径
docker inspect my-vol

# 启动一个新的容器
docker run \
-dit \
--name centos7 \
--rm \
-v my-vol:/opt/app \
centos:7

# 进入容器
docker exec -it centos7 bash

# 在容器中,进入/opt/app目录下
cd /opt/app

# 在目录下生成一个文件
echo bbbbbb > f2

# 查看文件
ls
cat f2

# 回到宿主机查看文件
exit
cd /var/lib/docker/volumes/my-vol/_data(该路径是查看数据卷真实路径下的路径)
ls
cat f2
端口映射
# 启动tomcat容器,端口映射到宿主机的 80端口
docker run \
-d \
--name tomcat80 \
--rm \
-p 80:8080 \
tomcat

# 查看容器日志
docker logs tomcat80

# 使用浏览器访问宿主机的80端口
http://自己设置的主机ip
虚拟网络,容器互联
# 创建新的虚拟网络
docker network create my-net

# 查看网络
docker network ls

# 查看网络描述
docker inspect my-net

# 查看宿柱机的虚拟网卡
ifconfig

# 启动容器app1 ,连接到虚拟网络 my-net
docker run \
-dit \
--name app1 \
--rm \
--network my-net \
centos:7

# 启动容器app2,连接到虚拟网络 my-net
docker run \
-dit \
--name app2 \
--rm \
--network my-net \
centos:7

#查看容器的ip
docker inspect app1
docker inspect app2

# 互ping
# 宿主机ping app1 和 app2
ping 172.18.0.2
ping 172.18.0.3
​
# app1 ping 宿主机和 app2
docker exec -it app1 ping 172.18.0.1
docker exec -it app1 ping app2
​
# app2 ping 宿主机和 app1
docker exec -it app2 ping 172.18.0.1
docker exec -it app2 ping app1

本文部分内容来自涛哥博客的docker内容:https://blog.csdn.net/weixin_38305440(更多详细内容请参考涛哥博客)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值