当前位置:   article > 正文

docker 安装及常见命令_docker run bash

docker run bash

先安装

  1. yum -y install gcc
  2. yum -y install gcc-c++
  3. 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 

  1. systemctl start docker
  2. systemctl status docker
  3. systemctl stop docker

查询docker是否安装成功

docker version

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

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

 重启

  1. systemctl daemon-reload
  2. systemctl restart docker

1.仓库命令

  1. #拉取镜像
  2. docker pull 镜像名
  3. #查询镜像
  4. docker search 镜像名
  5. #查询仓库有多少镜像
  6. docker images
  7. #删除仓库里的镜像
  8. docker rmi 镜像名
  9. # 占用系统存储
  10. docker system df

 2.镜像命令

  1. docker run -it 容器 /bin/bash
  2. 退出 exit 停止容器退出 ctrl+q+p 后台运行退出
  3. 注意 Docker容器后台运行,就必须有一个前台进程.
  4. 像 nginx mysql 都有前台进程 而 ubuntu等系统没有前台进程
  5. 后台启动命令
  6. docker run -d 容器
  7. 进入容器
  8. docker exec -it 容器 /bin/bash
  9. 删除容器
  10. docker rm 容器
  11. 强制删除容器
  12. docker rm -f 容器
  13. 关闭容器
  14. docket stop 容器
  15. 打开已关闭的容器
  16. docker start 容器

2.1. 查询 docker 容器日志

docker logs 容器

2.2.查询容器进程

docker top 容器

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

  1. docker stats 容器
  2. 一下参数
  3. CONTAINER ID 与 NAME: 容器 ID 与名称。
  4. CPU % 与 MEM %: 容器使用的 CPU 和内存的百分比。
  5. MEM USAGE / LIMIT: 容器正在使用的总内存,以及允许使用的内存总量。
  6. NET I/O: 容器通过其网络接口发送和接收的数据量。
  7. BLOCK I/O: 容器从主机上的块设备读取和写入的数据量。
  8. 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 运行解析号的容器

  1. 复制COMMAND 在docker ps 可以看到
  2. 如果 COMMAND 较长 就执行 复制
  3. docker ps -a --no-trunc|grep
  4. docker run -d ... 容器 复制的 COMMAND

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

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

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

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

5.构建本地镜像仓

  1. docker pull registry
  2. #运行容器 挂载容器卷
  3. docker run -d -p 5000:5000 -v /usr/local/registry:/var/lib/--privileged=true registry
  4. #打包成registry需要的格式的形式
  5. docker tag 镜像 本机地址:5000/镜像名:版本号
  6. #推送 拉取
  7. docker push 本机地址:5000/镜像名:版本号
  8. docker pull 本机地址:5000/镜像名:版本号
  9. 查询仓库 内有多少仓库
  10. curl -XGET 本机地址:5000/v2/_catalog

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

  1. docker run -it --privileged=true -v /tmp/text/:/tmp/text ubuntu
  2. --privileged=true 表示让容器内的root拥有本机的root权限 最好都加上
  3. -v /宿主机绝对路径目录:/容器内目录
  4. 容器挂载的目录是可读可写的
  5. 指定只能读
  6. docker run -it --privileged=true -v /tmp/text/:/tmp/text:or ubuntu
  7. 继承已有的容器卷,可继承它挂载的容器目录经行同步
  8. docker run -it --privileged=true --volumes-from 容器id 容器名

7.安装mysql

  1. 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
  2. docker run 在本地找不到 会自动 pull
  3. -d 后台运行
  4. -p linux端口哈:容器内部mysql端口
  5. -v 挂载的是目录 他会自动创建
  6. -v /mydata/mysql/log:/var/log/mysql 挂载的是mysql日志记录
  7. -v /mydata/mysql/data:/var/lib/mysql 是数据目录
  8. -v /mydata/mysql/conf:/etc/mysql/conf.d 是配置文件目录
  9. -e MYSQL_ROOT_PASSWORD=123456 指定root登入密码
  10. 注意需要在配置文件创建my.cnf 配置utf8
  11. [client]
  12. default_character_set=utf8
  13. [mysqld]
  14. collation_server = utf8_general_ci
  15. character_set_server = utf8

7.1 安装redis

  1. 先在/mydata/redis/创建redis.conf 配置文件 因为-v 默认创建的是目录
  2. 修改配置文件中
  3. 注释 bind 127.0.0.1
  4. 修改 daemonize yes 改成 no
  5. 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 常用保留字

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

8.1 dockerFile 编写springboot项目

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/655644
推荐阅读
相关标签
  

闽ICP备14008679号