CentOS中Docker的安装和使用(持续更新)

Docker的安装

先查看是否存在docker

docker -v

发现docker版本太低了,直接卸载掉旧版本,应为低版本docker会影响如harbor等软件的安装,卸载命令如下

yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine

安装一些必要的系统工具:

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

添加软件源:

  • 阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 中科大
sudo yum-config-manager --add-repo http://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

查询docker版本

yum list docker-ce --showduplicates|sort -r  

安装指定版本

yum install docker-ce.x86_64            3:20.10.6-3.el7

安装完成 查看版本

docker -v

结果如下

	Docker version 20.10.6, build 370c289

使用docker

打开docker

systemctl start docker   

查看状态

systemctl status docker  

停止docker

systemctl stop docker  

重启docker服务

systemctl restart  docker

镜像

查看docker的镜像

docker images

拉取一个centos镜像

docker pull centos:7  

删除镜像 也可以根据id删除

docker rmi hello-world

加载本地tar镜像

docker load -i tar文件名

容器

查看正在运行的容器

docker ps  

查看所有容器

docker ps -a 

启动一个容器

docker start  CONTAINER_ID 

停止一个容器

docker stop   CONTAINER_ID

重启一个容器

docker restart  CONTAINER_ID

删除一个容器 (正在运行中的容器必须要先停止后才能删除)

docker rm  CONTAINER_ID  

删除全部容器

docker stop $(docker ps -q) & docker rm $(docker ps -aq)  

查看有哪些网络

docker network ls

交互式容器

docker run -it --name=mycentos7 centos:7 /bin/bash

守护式容器 exit退出后 容器仍然运行

 docker run -di --name=mycentosllp centos:7   

进入容器

 1.docker exec -it 8bc260647f84 /bin/bash  
 2.docker exec -it mycentosllp /bin/bash  

宿主机拷贝数据到容器中

 docker cp llp.txt 8bc260647f84:/

容器数据拷贝到宿主机中

 docker cp 8bc260647f84:/llp.txt  /root 

挂载虚拟目录

  docker run -di -v /home/llpdocker_virtual:/home/llpdocker_virtual --name=mycentosvirtual  centos:7  

该创建方式可能在容器中 没有root权限
带有权限的创建

  docker run -di  --privileged=true -v /home/llpdocker_virtual:/home/llpdocker_virtual --name=mycentosvirtual  centos:7  

查看容器的Ip

  docker inspect name/id 

其他容器的部署

mysql

拉取镜像

 docker pull docker.io/centos/mysql-57-centos7  

运行容器

 docker run -di --name=mysql5.7 -p 3306:3306  -e MYSQL_ROOT_PASSWORD=ROOT  centos/mysql-57-centos7 

进入 容器

 docker exec -it 4f35f2a2e6e3 /bin/bash 

登录数据库

mysql -uroot -p  

nginx

拉取镜像

docker pull nginx  

运行容器

docker run -di --name=llpnginx -p 10001:80 nginx

进入容器

docker exec -it llpnginx bash

redis

拉取镜像

docker pull redis 

运行容器

docker run -di --name=llpredis -p 10002:6379 redis

进入容器

docker exec -it llpredis /bin/bash 

进入数据行命令

cd /usr/local/bin   

ps
进入redis-cli目录下

cd /usr/local/bin/  

启动客户端

./redis-cli  

docker compose

下载

curl -L “https://github.com/docker/compose/releases/download/1.24.1/docker-compose- ( u n a m e − s ) − (uname -s)- (unames)(uname -m)” -o /usr/local/bin/docker-compose

curl -SL https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose  

ps 国内高速下载地址

curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose  

将可执行权限应用于二进制文件

chmod +x /usr/local/bin/docker-compose

创建软连接

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose  

查看版本信息

docker-compose --version 

创建目录

mkdir /usr/local/llpcompose  

进入目录

cd /usr/local/llpcompose

创建并编辑docker-compose yml文件

vim docker-compose.yml
version: '3'
services:
  redisllp:
    image: redis
    ports:
      - "9001:6379"
    container_name: "redisllp"
    networks: 
      - dev
  mysqlllp:
    image: centos/mysql-57-centos7
    environment:
      MYSQL_ROOT_PASSWORD: "123456"
    ports: 
      - "9002:3306"
    container_name: "mysqlllp"
    networks: 
      - dev
  nginxllp:
    image: tomcat
    ports: 
      - "9003:8080"
    container_name: "nginxllp"
    networks: 
      - dev
      - pro
networks:
  dev:
    driver: bridge
  pro:
    driver: bridge

创建镜像

a.根据容器创建一个镜像
docker commit 容器名称 镜像名称
b.将已有镜像保存为tar 文件 (可以通过load方式加载)
docker save –o 文件名.tar 镜像名
加载一个本地镜像,加载后可以重新创建一个容器
docker load -i 文件名.tar
利用dockerfile创建一个包含aspnetcore-runtime-3.1.7的镜像
Dockerfile配置

FROM centos:7
MAINTAINER ITCAST
WORKDIR /usr
RUN mkdir /usr/local/core3.1
ADD aspnetcore-runtime-3.1.7-linux-x64.tar.gz /usr/local/core3.1/
RUN ln -s /usr/local/core3.1/  /usr/local/bin
ENV Core_HOME /usr/local/core3.1
ENV PATH $Core_HOME:$PATH

ps:当前目录不要忘记了 “.” 不能忘记
docker build -t=‘core3.1’ .
创建容器并进入

docker run -it --name='testcore' core3.1  /bin/bash  

私有仓库的搭建

拉取私有仓库镜像

docker pull registry  

启动私有仓库容器

docker run -di --name=registry -p 9000:5000 registry  

修改daemon.json

vi /etc/docker/daemon.json  

添加如下内容
“insecure-registries”:[“宿主机ip:9000”]
此步用于让docker信任私有仓库地址;注意将宿主机ip修改为自己宿主机真实ip
重启docker 服务

systemctl restart docker

docker start registry
打开浏览器 输入地址http://宿主机ip:9000/v2/_catalog,看到{“repositories”:[]} 表示私有仓库
搭建成功

推送到私有仓库

标记镜像

docker tag core3.1 192.168.0.107:9000/core3.1

重启私有仓库容器
docker restart registry
上传标记的镜像

docker push 192.168.0.107:9000/core3.1

从私有仓库拉取镜像

#拉取镜像

docker pull 192.168.0.107:9000/core3.1

打开配置文件
vi /usr/lib/systemd/system/docker.service
在打开的上述文件中按照下面的图,添加如下的内容;注意修改下面内容中的ip地址
–add-registry=192.168.12.135:5000 --insecure-registry=192.168.12.135:5000
修改完后需要重新加载docker配置文件并重启docker

systemctl daemon-reload  
systemctl restart docker  
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值