docker笔记

阿里云镜像地址:

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

docker常用命令

docker version    # 显示 docker 的版本信息
docker info       # 显示 docker 的详细信息
docker 命令 --help # 帮助命令

镜像命令

docker images 查看所有镜像

docker serarch 搜索镜像

docker search 镜像 -f 过滤

docker pull 下载镜像

docker pull mysql #下载最新版本
docker pull mysql:5.7  # 下载指定版本

docker rmi 删除镜像

docker rmi 镜像
docker rmi -f 强制删除
docker rmi -f 镜像 $(docker images -aq) 全部删除

容器命令

说明: 有了镜像才可以创建容器

#下载个centos镜像
docker pull centos
# 新建容器并启动
docker run [可行options] 镜像id

# 参数说明
--name "name" 容器名字 
-d             后台方式运行
-it             使用交互方式运行
-p             指定容器端口 
	-p ip:主机端口:容器端口
	-p 主机端口:容器端口
	-p 容器端口
	容器端口
-P  随机映射端口

# 从容器退出
exit 

# 列出正在运行的容器
docker ps -a  # 列出正在运行的容器(包括历史运行)
-n=?   # 显示最近创建的容器,-n=2 显示最近2个容器
-q   # 只显示容器的编号 

# 退出容器不停止运行
ctrl + p + Q


# 删除容器 
docker rm 容器id
docker rm -f $(docker ps -aq)   # 删除所有容器
docker ps -a -q|xargs docker rm # 删除所有容器

# 启动和停止窗口的操作
docker start 容器id    # 启动容器
docker restart 容器id  # 重启容器
docker stop 容器id	 # 停止容器
docker kill 容器id	 # 杀掉容器

查看日志

docker logs 

docker logs -tf --tail=n 

查看容器中的进程信息

docker top 容器id

查看镜像的元数据

docker inspect 容器id

进入当前正在运行的容器

# 通常容器都是使用后台方式运行的,需要进行容器修改一些配置

# 命令:
docker exec -it 容器id /bin/bash    # 以交互方式进入容器

docker attach 容器id  

# 区别
# docker exec     # 进入容器后开启一个新的终端(常用)
# docker attach   # 进入容器正在执行的终端,不会启动新的进程

从容器内拷贝文件到主机上

docker cp 容器id:容器路径 主机路径

docker stats 容器id 查看这个容器消耗cpu情况

commit 自己的镜像

docker commit 提交容器成为一个新的版本

# 命令
docker commit -m="提交信息描述" -a="作者" 容器id 目标镜像名:[tag]

数据卷

使用数据卷

命令

# -v 数据卷挂载
docker run -it -v Linux目录:容器目录 镜像名字

# 官方下载mysql
# 解释说明
# -e (environment)  用于配置环境
 docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

具名和匿名挂载

# 匿名挂载
-v 容器内路径
docker run -d -P --name nginx01 -v /etc/nginx nginx

# 查看所有 volume(卷)的情况
docker volume ls

# 所谓匿名挂载就是在 -v 时只写了容器内路径,没有写容器外路径


# 具名挂载
[root@VM-4-16-centos ttt]# docker run -d -P --name nginx02 -v juming-nginx:/etc/
nginx nginx
a2602d74fd2f677ef6ed81d0a58dac9476a37688c6ed59df5d1f8eca464c883b

#################################################
[root@VM-4-16-centos ttt]# docker volume ls
DRIVER    VOLUME NAME
local     177e907eaa230940b1f5628d8fba470bd67f201c218c162e9f8423fd58f9936c
local     juming-nginx
[root@VM-4-16-centos ttt]#

# 查看具名挂载的地址:
[root@VM-4-16-centos ttt]# docker volume inspect juming-nginx
[
    {
        "CreatedAt": "2022-06-19T15:42:34+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/juming-nginx/_data",
        "Name": "juming-nginx",
        "Options": null,
        "Scope": "local"
    }
]

所有的docker 容器内的卷,没有指定目录的情况下都是在/var/lib/docker/xxx/_data

我们可以通过具名挂载可以方便的找到我们的一个卷,大多数情况使用具名挂载

# 如何区分具名挂载和匿名挂载,还是指定路径挂载
-v 容器内路径   	# 匿名挂载
-v 卷名:容器内路径	# 具名挂载
-v /宿主机上当:容器内路径   # 指定路径挂载

拓展:

# 通过 -v 容器内路径:ro rw 改变读写权限 
ro     readonly  # 只读
rw     readwrite # 可读可写
docker run -d -P --name nginx02 juming-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx02 juming-nginx:/etc/nginx:rw nginx

# ro 只要看到这个,只能通过宿主机来操作,不能在容器内修改

dockerFile 的指令

FROM 		# 基本镜像,一切从这里开始构建 
MAINTAINER	# 镜像是谁写的,姓名+邮箱
RUN			# 镜像构建的时候需要运行的命令
ADD			# 步骤,tomcat镜像,这个tomcat压缩包, 添加内容
WORKDIR 	# 镜像的工作目录
VOLUME		# 挂载的目录
EXPOSE		# 暴露端口配置
CMD			# 指定这个容器启动时候要运行的命令,(相同命令)只有最后一个会生效,可被替代
ENTRYPOINT	# 指定这个容器启动时候要运行的命令,可以追加命令
ONBUILD		# 当构建一个被 继承 DockerFile 这个时候就会运行 ONBUILD 的指令,触发指令
COPY		# 类似 ADD ,将我们文件拷贝到镜像中  
ENV			# 构建的时候设置环境变量

Dockfile 创建镜像

dockerfile 是用来构建docker镜像的文件!命令参数脚本!

构建步骤:

1、编写一个dockerfile文件

2、docker build 构建成为一个镜像

3、docker run 运行镜像

4、docker push 发布镜像(DockerHub、阿里云镜像仓库)

# 1、 编写一个自己的DockerFile的文件
# 文件内容:
FROM centos
MAINTAINER biienu<biienu@163.com>
ENV MYPATH /usr/local
WORKDIR $MYPATH

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE 80

CMD echo $MYPATH
CMD echo "-----end-----"
CMD /bin/bash

# 2、构建命令
docker build -f dockerfile文件 -t 镜像名:[tag] .   # 注意:最后一个点

docker history 镜像id 查看这个镜像创建记录

提交镜像到dockerHub或阿里云

# docker tag 命令:  给一个镜像设置tag
docker tag 镜像id 镜像名字:[tag]

# docker login -u : 登录到dockerhub
-u 用户名

# docker push 镜像    提交镜像到DockerHub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值