docker 安装及常见命令

先安装

yum -y install gcc
yum -y install gcc-c++
yum install -y yum-utils

设置镜像仓库

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker ce

yum -y install docker-ce docker-ce-cli containerd.io

启动docke 查看docker状态 关闭docker 

systemctl start docker
systemctl status docker
systemctl stop docker

查询docker是否安装成功

docker version

配置阿里云镜像加速器 方便拉取镜像开

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://aa25jngu.mirror.aliyuncs.com"]
}
EOF

 重启

systemctl daemon-reload
systemctl restart docker

1.仓库命令

#拉取镜像
docker pull 镜像名
#查询镜像
docker search 镜像名

#查询仓库有多少镜像
docker images
#删除仓库里的镜像
docker rmi 镜像名
# 占用系统存储
docker system df

 2.镜像命令

docker run -it 容器 /bin/bash
退出 exit 停止容器退出 ctrl+q+p 后台运行退出 

注意  Docker容器后台运行,就必须有一个前台进程.
像 nginx mysql 都有前台进程 而  ubuntu等系统没有前台进程

后台启动命令
docker run -d 容器 

进入容器
docker exec -it 容器 /bin/bash
删除容器
docker rm 容器
强制删除容器
docker rm -f 容器
关闭容器
docket stop 容器
打开已关闭的容器
docker start 容器

2.1. 查询 docker 容器日志

docker logs 容器

2.2.查询容器进程

docker top 容器

2.3.查询运行时容器站cpu 内存等信息

docker stats 容器

一下参数
    CONTAINER ID 与 NAME: 容器 ID 与名称。

    CPU % 与 MEM %: 容器使用的 CPU 和内存的百分比。

    MEM USAGE / LIMIT: 容器正在使用的总内存,以及允许使用的内存总量。

    NET I/O: 容器通过其网络接口发送和接收的数据量。

    BLOCK I/O: 容器从主机上的块设备读取和写入的数据量。

    PIDs: 容器创建的进程或线程数。

2.4查询 容器内部详情

docker inspect 容器

2.5.获取容器中的数据

docker cp 容器id:容器内地址 本机地址

3. 把容器打包成镜像 (docker镜像) 

docker export 容器id>xxx.tar

3.1把xxx.tar包解析成容器

cat xxx.tar | docker import - 容器名:版本号

 3.2 运行解析号的容器

复制COMMAND 在docker ps 可以看到

如果 COMMAND 较长 就执行 复制
docker ps -a --no-trunc|grep

docker run -d  ...   容器 复制的 COMMAND

4. docker每个容器就是一个迷你版的Linux 如果想增强容器就增强Linux一样,可以把容器转变成镜像

docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]

 发布到阿里云上取,可让别人使用你的docker容器,或打包成 tar包给别人

请登入阿里云 搜索 容器镜像服务对经行推送获取

5.构建本地镜像仓

docker pull registry
#运行容器 挂载容器卷
docker run -d -p 5000:5000 -v /usr/local/registry:/var/lib/--privileged=true registry 
#打包成registry需要的格式的形式
docker tag 镜像 本机地址:5000/镜像名:版本号

#推送 拉取
docker push 本机地址:5000/镜像名:版本号
docker pull 本机地址:5000/镜像名:版本号

查询仓库 内有多少仓库

curl -XGET 本机地址:5000/v2/_catalog

6. docker 容器数据卷,本质就是把容器中的数据持久化到Linux中 

docker run -it --privileged=true -v /tmp/text/:/tmp/text ubuntu

--privileged=true 表示让容器内的root拥有本机的root权限 最好都加上
-v /宿主机绝对路径目录:/容器内目录

容器挂载的目录是可读可写的
指定只能读
docker run -it --privileged=true -v /tmp/text/:/tmp/text:or ubuntu

继承已有的容器卷,可继承它挂载的容器目录经行同步
docker run -it --privileged=true --volumes-from 容器id 容器名

7.安装mysql


docker run -d -p 3306:3306 --privileged=true -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456  --name mysql mysql:5.7

docker run 在本地找不到 会自动 pull
-d 后台运行
-p linux端口哈:容器内部mysql端口
-v 挂载的是目录 他会自动创建 
      -v /mydata/mysql/log:/var/log/mysql 挂载的是mysql日志记录
      -v /mydata/mysql/data:/var/lib/mysql 是数据目录
      -v /mydata/mysql/conf:/etc/mysql/conf.d 是配置文件目录 
-e MYSQL_ROOT_PASSWORD=123456 指定root登入密码

注意需要在配置文件创建my.cnf 配置utf8
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8



7.1 安装redis

先在/mydata/redis/创建redis.conf 配置文件 因为-v 默认创建的是目录
修改配置文件中
    注释 bind 127.0.0.1
     修改 daemonize yes 改成 no
docker run  -p 6379:6379 --name redis --privileged=true -v /mydata/redis/redis.conf:/etc/redis/redis.conf -v /mydata/redis/data:/data -d redis redis-server /etc/redis/redis.conf

8.dockerfile 它是构建docker镜像的文件  是由一条条构建镜像所需的指令和参数构成的脚本。

8.1它的解析过程 就想一个容器 commit n次 得到一个最终的镜像

8.2 常用保留字

FROM 基础镜像,当前新镜像是基于哪个镜像的,指定一个已经存在的镜像作为模板,第一条必须是from
MAINTAINER 作者
RUN 在构建镜像时运行,shell 格式 RUN yum install mysql 
EXPOSE 端口号
WORKDIR 进入容器之后的地址
USER 指定该镜像以什么样的用户去执行,如果都不指定,默认是root
ENV 用来在构建镜像过程中设置环境变量
ADD 将宿主机目录下的文件拷贝进镜像且会自动处理URL和解压tar压缩包
COPY 类似ADD,拷贝文件和目录到镜像中。将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的 <目标路径> 位置 COPY ["src", "dest"]
VOLUME 容器数据卷,用于数据保存和持久化工作
CMD  指定容器启动后的要干的事情 会被run 后的参数替换
ENTRYPOINT 和CMD一样 但不会被run 后的参数替换

8.1 dockerFile 编写springboot项目

 # 基础镜像使用java
FROM java:8
# 作者
MAINTAINER liu
# VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为zzyy_docker.jar
ADD docker_boot-0.0.1-SNAPSHOT.jar zzyy_docker.jar
# 运行jar包 touch命令的作用是修改这个文件的访问时间和修改时间为当前时间,而不会修改文件的内容
RUN bash -c 'touch /zzyy_docker.jar'
ENTRYPOINT ["java","-jar","/zzyy_docker.jar"]
#暴露6001端口作为微服务
EXPOSE 6000

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值