Centos7操作Docker

安装Docker

先卸载旧版本

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

安装Docker官方源:

yum -y install yum-utils

 yum-config-manager –add-repo http://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 docker-ce

启动并设为开机自启:

systemctl enable docker    #设为开机自启

systemctl start docker     #开启docker

systemctl status docker    #查看状态

查看docker版本:

 docker version

如果遇到/usr/bin/docker:权限不足需要执行命令:

chattr -i /usr/bin/docker

chmod +x /usr/bin/docker

 附上卸载方案:

yum remove docker-ce
rm -rf /var/lib/docker

Docker镜像与容器操作

Docker镜像官网:http://hub.docker.com

 

#镜像操作

#下载镜像
#docker pull name:tag
docker pull nginx:1.20.0
#查看本地已下载
docker images
#删除镜像
docker rmi 镜像id或名称
#删除所有镜像
docker rmi $(docker images -q)

#容器操作

#启动容器
docker run --name mynginx -p 8080:80 -d nginx:1.20.0  -v /data:/home/nginx/html
#--name mynginx:容器名称。
#-p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
#-d nginx: 设置容器在在后台运行,eg: -d nginx:latest
#-v /data:/home...  :设置nginx挂载目录(目录映射)
#端口映射方式 
#单个端口  -p 80:80  
#多个端口   -p 80-90:80-90

#使用主机网络端口(全映射出去不安全)
#docker run --rm --network host --name mytest nginx

#查看所有容器(包括未运行的)
docker ps -a
#查看运行中的容器
docker ps
#停止容器
docker stop 容器ID或容器名称
#开启已经停止的容器
docker start 容器ID或容器名称
#移除已经停止的容器
docker rm -v 容器ID或容器名称
docker rm -f 容器ID或名称
# -f强制删除(无论是否在运行中)

#查看日志
#docker logs -f 容器id或容器名称
docker logs -f mynginx

#切入到容器中(exec保证退出后不停止容器)
docker exec -it mynginx /bin/bash
#-i 标准输入
#-t 终端

#查看容器详细信息(包括ip地址)
docker inspect mynginx

#创建mynginx1,并用名称连接mybginx2并进入mynginx1的sh操作
docker run -it --name mynginx1 --link mynginx2 busybox sh 
#退出容器
exit
#查看端口映射情况:
docker port <ID/Name>
#停止所有容器:
docker stop $(docker ps -aq)
#删除所有容器:
docker rm $(docker ps -aq)

安装Docker Compose

curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

网速慢的话也可以直接去https://github.com/docker/compose/releases网站手动下载

使用命令查看centos配置来确定该下载哪个版本:

uname -s

uname -m

手动下载后直接运行./docker-compose-Linux-x86_64 -o /use/local/bin/docker-compose

加权限

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

DockerCompose构建镜像
SpringBoot项目根目录中添加docker-compose.yml
version: '2'
services:
  #构建mysql
  mysql:
    #待构建Dockerfile的地址
    build:
      context: ./db
    #环境变量
    environment:
      MYSQL_PASSWORD: root
    restart: always
    #容器名称
    container_name: mysql
    #镜像名称
    image: mysql
    #端口映射
    ports:
      - 3306:3306
    #磁盘映射
    volumes:
      - ./mysql:/var/lib/mysql
    #命令
    command: --lower_case_table_names=1
  #SpringBoot项目构建方案
  springboot:
    build:
      context: ./springboot
    restart: always
    container_name: springboot
    image: springboot
    ports:
      - 8080:8080

db/Dockerfile  【在db目录中放一个mysql.sql初始化数据库表】

FROM mysql:8.0.23
MAINTAINER John
ENV TZ=Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
COPY ./mysql.sql /docker-entrypoint-initdb.d

springboot/Dockerfile

FROM circleci/java:8-jdk
MAINTAINER John

ENV NAME=springboot
ENV TZ=Asia/Shanghai
ENV JAVA_OPTS="-Xms128m -Xmx256m -Dspring.profiles.active=test -Djava.security.egd=file:/dev/./urandom"

RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN mkdir -p /$NAME

WORKDIR /$NAME

EXPOSE 8080

ADD ./target/$NAME.jar ./

CMD sleep 0;java $JAVA_OPTS -jar $NAME.jar

#docker-compose构建镜像(在docker-compose.yml所在目录执行)

docker-compose build

或者使用  docker-compose -f xxx.yml -f xxxx.yml build指定自定义的yml配置

#启动构建的镜像 -d 表示后台运行

docker-compose -f xxx.yml up -d

docker的备份和迁移

容器保存为镜像

我们可以通过以下命令将容器保存为镜像

docker commit pyg_nginx mynginx

pyg_nginx是容器名称

mynginx是新的镜像名称

此镜像的内容就是你当前容器的内容,接下来你可以用此镜像再次运行新的容器

镜像备份

docker  save -o mynginx.tar mynginx

-o 输出到的文件

执行后,运行ls命令即可看到打成的tar包

镜像恢复与迁移

首先我们先删除掉mynginx镜像

然后执行此命令进行恢复

docker load -i mynginx.tar

-i 输入的文件

执行后再次查看镜像,可以看到镜像已经恢复

卸载docker

查看已安装的docker          yum list installed | grep docker
删除docker          yum -y remove docker-engine.x86_64xxxxx
清理磁盘文件         rm -rf /var/lib/docker 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值