docker安装及常用命令及docker仓库私有化

docker常用命令

查看
docker images # 列出所有镜像(images)
docker ps # 列出正在运行的容器(containers)
docker ps -a # 列出所有的容器
docker pull centos # 下载centos镜像
docker top <container> # 查看容器内部运行程序

容器
docker stop <container> # 停止一个正在运行的容器,<container>可以是容器ID或名称
docker start <container> # 启动一个已经停止的容器
docker restart <container> # 重启容器
docker rm <container> # 删除容器

docker run -i -t -p :80 <container> /bin/bash # 运行容器并做http端口转发
docker exec -it <container> /bin/bash # 进入ubuntu类容器的bash
docker exec -it <container> /bin/sh # 进入alpine类容器的sh
Ctrl + P , Ctrl + Q 退出容器

docker rm `docker ps -a -q` # 删除所有已经停止的容器
FOR /f "tokens=*" %i IN ('docker ps -a -q') DO docker rm %i # windows系统,用上面的命令会出错:unknown shorthand flag: 'a' in -a
docker kill $(docker ps -a -q) # 杀死所有正在运行的容器,$()功能同``

提交/导出
docker build --rm=true -t hjue/lamp . # 建立映像文件。–rm 选项是告诉Docker,在构建完成后删除临时的Container,Dockerfile的每一行指令都会创建一个临时的Container,一般这些临时生成的Container是不需要的
docker commit 3a09b2588478 mynewimage # 提交你的变更,并且把容器保存成镜像,命名为mynewimage,3a09b2588478为容器的ID

docker save mynewimage | bzip2 -9 -c> /home/save.tar.bz2 # 把 mynewimage 镜像保存成 tar 文件
bzip2 -d -c < /home/save.tar.bz2 | docker load # 加载 mynewimage 镜像

docker export <CONTAINER ID> > /home/export.tar # 导出Image
cat /home/export.tar | sudo docker import - mynewimage # 导入Image镜像

镜像
docker run -i -t centos /bin/bash # 运行centos镜像
docker run -d -p 80:80 hjue/centos-lamp # 运行centos-lamp镜像

docker rmi [image-id] # 删除镜像
docker rmi $(docker images -q) # 删除所有镜像
docker rmi $(sudo docker images --filter "dangling=true" -q --no-trunc) # 删除无用镜像
帮助
docker run --help

关闭容器
在容器内使用exit,命令容器关闭,而不是后台运行。
如果想让容器一直运行,可以使用快捷键 ctrl+p ctrl+q 此时容器的状态为Up

启动,停止,重启,附着
~$ docker start aa97ba3292ce
~$ docker stop aa97ba3292ce
~$ docker restart aa97ba3292ce
~$ docker attach aa97ba3292ce


跟踪docker日志,Ctrl + C 退出跟踪
docker logs --tail 0 -f aa97ba3292ce

显示最后10行日志
docker logs --tail 10 aa97ba3292ce

安装docker

yum install -y yum-utils
yum-config-manager \ --add-repo \   https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager \ --add-repo \   http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast //更新缓存

yum install -y docker-ce docker-ce-cli containerd.io
//方法二: curl -sSL https://get.daocloud.io/docker | sh

如果是国产服务器看这个教程 https://blog.csdn.net/qq_34041723/article/details/126287016

启动
systemctl enable docker //设置docker开机自启动
systemctl start docker  //启动docker
systemctl status docker  //查看进程状态
测试,下载并启动hello-world镜像
docker run hello-world

容器可视化管理

//拉取镜像启动容器
docker run -d -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
//把配置文件映射到主机
//先创建一个数据给portainer存储配置
docker volume create portainer_data
docker run -d -p 9000:9000 --name portainer --restart=always -v /var/run/docker/sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

如果/var/run/docker.sock被误删除了,先上传docker.pid,再重启docker,重启主机(要重启主机)

安装docker-compose

百度网盘下载docker-compose执行文件
链接: https://pan.baidu.com/s/109NGbbzAY2tpTGzVGNm4YQ?pwd=1a2b
1,把百度网盘下载的docker-compose重名为docker-compose,上传到/usr/local/bin/目录下
2,增加可执行权限: chmod +x /usr/local/bin/docker-compose
验证安装成功: docker-compose -v

安装docker私有仓库

docker run -d -p 5000:5000 -v /var/docker/registry:/var/lib/registry --restart=always --name docker_registry registry
查看仓库:  http://IP:5000/v2/_catalog

客户端配置http访问:  在客户端的/etc/docker/目录下(如果目录不存在就创建一个)添加文件: daemon.json  内容如下
{"insecure-registries": ["10.10.3.180:5000","仓库IP:5000"]}
然后要重启docker
systemctl daemon-reload
systemctl restart docker

安装harbor(带用户管理的私有仓库)

百度网盘下载harbor离线安装包 harbor-offline-installer-v2.4.1.tgz
链接: https://pan.baidu.com/s/109NGbbzAY2tpTGzVGNm4YQ?pwd=1a2b
把安装包 harbor-offline-installer-v2.4.1.tgz 上传到到任意目录
解压 tar -zxvf harbor-offline-installer-v2.4.1.tgz
解压完成后会在当前目录生成harbor目录
进入目录cd harbor
复制和修改harbor目录下的harbor.yml文件
cp harbor.yml.tmpl harbor.yml
vi harbor.yml
注释掉htps,修改hostname (本机外网IP,特别注意这里是外网IP),其他都可以不用动。
安装: 
[root@localhost harbor]# ./prepare 
[root@localhost harbor]# ./install.sh

特别注意: 修改hostname为外网访问的IP, 否则用命令行docker login 的时候登录不了
验证安装成功:
docker ps 能看到一堆启动的容器
浏览器输入本机IP能看到Harbor登录界面, 默认用户名密码: admin / Harbor12345
如果发现访问不了,用reboot命令重启主机试一试

Harbor的使用

安装好Harbor之后有个自带的仓库library, 可以直接用

客户端配置http访问:  在客户端的/etc/docker/目录下(如果目录不存在就创建一个)添加文件: daemon.json  内容如下
{"insecure-registries": ["10.10.3.180:5000","仓库IP:5000"]}
然后要重启docker
systemctl daemon-reload
systemctl restart docker

登录到私有仓库,用默认管理员账号密码: admin  / Harbor12345
docker login 192.168.1.122:8081 -u admin -p Harbor12345
tag一个镜像
docker tag ubuntu 192.168.1.122:8081/library/ubuntu
推送镜像
docker push 192.168.1.122:8081/library/ubuntu

使用docker部署系统的流程

第一次部署

首先手动构建基础镜像, 确认可以运行程序, 把基础镜像上传到镜像仓库
基于基础镜像手动完成项目部署(数据卷映射, 配置文件映射) (利用portainer.io)

常规的版本更新过程

准备: 固定一个目录存放dockerfile和程序文件夹(dll)
1,编译项目,把需要更新的dll复制到程序文件夹(dll)
2,修改dockerfile: 修改基础镜像的版本号
3,执行命令构建新的镜像, 把新镜像上传到镜像仓库
4,在运行环境更新镜像并运行, 利用portainer.io来管理

安装portainer.io

docker volume create portainer_data
docker run --name portainer  --restart always -d -p 8000:8000 -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值