Docker的基本使用

Docker的安装与使用:

一、Docker的安装

  1. 建议关闭防火墙

    关闭防火墙
    systemctl stop firewalld.service
    检查防火墙状态
    systemctl status firewalld.service
    开启防火墙改
    systemctl start firewalld.service
    
  2. 添加docker软件包源:

    sudo yum-config-manager \
        --add-repo \
         https://download.docker.com/linux/centos/docker-ce.repo
         默认地址是官方的,有的时候可能网络不太好,国内的可以设置为阿里的源
         http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  3. 安装docker-ce

    yum install -y docker-ce
    
  4. 启动/关闭/版本/详细信息

    启动
    systemctl start docker
    关闭
    systemctl stop docker
    版本
    docker version
    详细信息
    docker info
    
  5. 设置开机启动

    systemctl enable docker
    
  6. 配置加速器

    vi /etc/docker/daemon.json

    {
    	"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
    }
    

    注意:配置完要重新读取一下

    systemctl daemon-reload
    systemctl restart docker
    

二、Docker的常用命令

启动一个容器
docker run -d nginx		或者	docker container run -d nginx
查看本地镜像
docker image ls
查看历史,构建步骤等
docker history nginx
显示镜像的详细信息
docker inspect nginx
从镜像仓库拉取一个镜像
docker pull nginx(如果本地已经有这个镜像的话,就不会从远程的镜像仓库再去下载了)
删除一个镜像
docker rm nginx(可以加上-f)
清除没有被容器引用的镜像
docker image prune 清除一些不完整的镜像,没有使用到的镜像	(加上-a参数就是清除掉所有没有和容器关联的镜像)

docker save redis -o redis.tar保存一个或多个镜像到一个tar的归档文件
du -sh redis.tar查看归档包多大小
解压归档文件tar xvf redis.tar
docker load -i redis.tar导入到本地镜像仓库中
上面的save和load常用于一台电脑链接不上网络,就得去找一台有网络的电脑去下载需要的镜像,下载完了再把镜像挪到那台没有网的电脑上。

查看正在运行的容器
docker ps
查看容器内部的进程
docker top 容器id
指定端口号的启动容器
docker run -d -p 8080:80 nginx

docker run -d centos	退出
docker run -d nginx		启动
docker run -it -d centos	启动
docker run -it -d nginx		启动
-it一般是一块连用的,作用就是分配一个伪终端,这个伪终端就相当于一个进行。在运行docker run -d centos的时候是会退出的,因为运行的容器内部没有进程,所以会推出。但我们运行docker run -it -d centos的时候会给这个centos容器内部创建一个伪终端的进程,所以centos这个不会退出。

docker exec -it 容器id bash
进入容器终端并且的保留为容器终端的输入形式(-it和bash的结合作用)
-d的意思就是让容易在后台运行,如果不加-d就会在当前终端进行运行。一般都是-d,因为我们一般会启动很多的容器

docker run -d -e env=prod -p 88:80 --name web -h web --restart=always nginx
创建nginx容器,指定环境变量env=prod,暴露对外端口为88,指定容器名字web,指定主机名 web,指定容器退出时策略为always(当docker重启后这个容器也会跟着重启)

docker commit 容器名称	镜像名

docker ps 
-a:查看所有的容器
-q:查看容器id
清除所有的容器:docker rm -f $(docker ps -qa)

持久化:
docker run -d -p 8080:80 -v /opt/wwwroot/:/usr/share/nginx/html nginx
将/opt/wwwroot/这个位置挂在到容器中的/usr/share/nginx/html这个位置,其实就相当于一个映射,可以理解为宿主机的目录覆盖了容器的那个目录。这种情况下我们查看容器中的这个目录会发现和宿主机的一模一样,当我们改了这里的东西,宿主机的对应位置也发生了改变;当我们改了宿主机的那个位置的文件,发现容器这种对应的文件也发生了响应变化。

容器网络:
容器在创建的时候,docker会分配一个ip地址,用于网络交互。
1、外界访问容器内部:先访问宿主机的地址和开放的端口号,然后通过iptables实现的DNAT的一个机制,也就是目标网络地址转换,转换成容器的ip地址和对应的端口号,进而完成访问。
2、容器访问外部:容器会根据iptables实现的SNAT源地址转换,转换成宿主机的地址,把数据包发送出去


三、Dockerfile的使用

dockerfile构建对象:
1、创建dockerfile文件	vi Dockerfile
FROM centos:7
RUN yum install epel-release -y && \
    yum install nginx -y
    CMD ["nginx", "-g", "daemon off;"]
这里的&& \ 意思就是可以执行多行

2、docker build -t nginx:v1 .		构建镜像
-t是指定镜像的名称
-f指定dockerfile的路径(默认读取Dockerfile的文件)
.	读取当前目录的Dockerfile文件

四、Harbor的搭建与基本使用

Harbor的部署与使用:(必须先安装Docker和Docker Compose)
1、安装docker-compose:先把docker-compose下载下来,上传到服务器上
2、将上传完的docker-compose移动到/use/local/bin/docker-compose
3、给这个文件赋予执行权限:chmod +x /usr/local/bin/docker-compose
4、检查docker-compose是否成功:docker-compose version

1、Harbor的安装有两种:在线安装(10M左右需要有网)和离线安装(文件500多M)
2、解压:tar zxvf harbor-offline-installer-v2.0.0.tgz
3、进入barbor文件夹:cd barhor
4、复制yml文件:cp harbor.yml.tmpl harbor.yml
5、编辑yml文件:vi harbor.yml
修改主机号:hostname:120.48.41.214
注释掉https,因为我们没有证书:先注释https相关配置
6、./prepare		准备
7、./install.sh		安装
8、访问:主机号是我们刚刚修改的IP地址,端口号默认80,密码默认Harbor12345,账号默认admin
密码可以修改yml文件:
harbor_admin_password: Harbor12345

推送到镜像仓库上:
1、需要先打个标签:docker tag tomcat:v1 120.48.41.214/library/tomcat:v1
2、推送:docker push 120.48.41.214/library/nginx:v1
注意:如果访问方式http方式,需要在yml文件上配置个可新人
ss -antp | grep 443
修改docker的json文件,加个可信任
"insecure-registries":["120.48.41.214"]		注意:别忘了逗号
3、重启docker:systemctl restart docker
查看所有容器:docker-compose ps
启动所有容器:docker-compose up -d
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值