Docker容器

发布于:2022-10-29 ⋅ 阅读:(538) ⋅ 点赞:(0)

Docker镜像命令

docker images 查看所有镜像
docker images -q 查看所有镜像i
docker search 镜像 搜索镜像
docker pull 镜像 拉取镜像
docker rmi 镜像ID 删除镜像

Docker容器命令

docker run -it 使用交互的方式运行,进入容器查看内容
docker run -d 后台运行容器
docker run -p 指定容器端口
docker ps 查看正在运行的容器
docker ps -a 查看所有容器
docker exec -it 容器名 /bin/bash 进入容器
docker attach 8a3681939cc9 进入容器
docker stop 容器名 停止容器
docker rm 容器名 删除容器
docker inspect 容器名 查看容器详细信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IMg9wwCn-1667033377216)(D:\QQ\1096075493\FileRecv\IMG_20220609_200510.png)]


Docker容器的数据卷

创建启动容器时,使用 -v 参数 设置数据卷
docker run ... -v 宿主机目录(文件):容器内目录(文件)...
[root@localhost ~]# docker run -it -v /home/ceshi:/home centos:7 /bin/bash

Docker配置数据卷容器

1.创建启动c3数据卷容器,使用-v参数 设置数据卷
docker run -it --name c3 -v /volume centos:7 /bin/bash

2.创建c1 c2容器 , 使用--volumes-from 参数 设置数据卷
docker run -it  --name c1 --volumes-from c3  centos:7 /bin/bash
docker run -it  --name c2 --volumes-from c3  centos:7 /bin/bash

Docker日志、元数据、进程查看

日志查看
#	-tf	显示日志
[root@localhost ~]# docker logs -tf -tail 10 a96e257c1af4
容器进程信息
[root@localhost ~]# docker top a96e257c1af4

Docker文件拷贝

[root@localhost ~]# docker cp 容器id:容器文件路径 主机路径

Commit镜像

docker commit 提交容器使其成为我新的副本

docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]
[root@localhost ~]# docker commit -a="weishuo" -m="add webapps app" 1c57f9733172 tomcat02:1.0

实战:安装MySQL

1.搜索镜像,获取镜像
[root@localhost ~]# docker search mysql
[root@localhost ~]# docker pull mysql:5.7

2.运行容器,做数据挂载
[root@localhost ~]# docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWOED=123456 --name mysql01 mysql:5.7

具名挂载、匿名挂载

#匿名挂载
-v 容器内部路径
docker run -d -p --name ngin01 -v /etc/nginx nginx

#具名挂载
-v 卷名:容器内路径
docker run -d -p --name ngin01 -v juming-nginx:/etc/nginx nginx

认识DockerFile

[root@localhost docker-test-volume]# vim dockerfile1
[root@localhost docker-test-volume]# cat dockerfile1 
FROM centos
VOLUME ["volume01","volume02"]

CMD echo "----end----"
CMD /bin/bash
[root@localhost docker-test-volume]# 

[root@localhost docker-test-volume]# docker build -f /home/docker-test-volume/dockerfile1 -t weishuo/centos:7 .

weishuo/centos   7         0b6613e7e154   About a minute ago   231MB

[root@localhost docker-test-volume]# docker run -it 0b6613e7e154 /bin/bash
构建步骤
1.编写dockerfile文件
2.docker build构建成为一个镜像
3.docker run运行镜像
4.docker push 发布镜像(DockerHub,阿里云镜像仓库)

DockerFile命令

FROM			#基础镜像,从这里构建
MAINTAINER 		#镜像作者(姓名+邮箱)
RUN 			#镜像构建的时候需要运行的命令
ADD				#步骤,tomcat镜像,这个tomcat压缩包!添加内容
WORKDIR			#镜像的工作目录
VOLUME			#挂载的目录
EXPOSE			#暴露端口配置
CMD				#指定容器启动的时候要运行的命令
ENTRYPOINT		#指定容器启动的时候要运行的命令,可以追加命令
ONBULID			#当构建一个被继承DockerFile这个时候就会运行ONBULID的指令
COPY			#类似ADD,将我们的文件拷贝到镜像中
ENY 			#构建的时候设置环境变量

实战测试centos7镜像

1.编写dockerfile文件
[root@localhost dockerfile]# vim mydockerfile-centos:7
=========================================================================================
FROM centos
MAINTAINER weishuo<1096075493@qq.com>

#环境变量
ENV MYPATH /usr/local
WORKDIR $MYPATH


RUN cd /etc/yum.repos.d/
RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

#安装工具
RUN yum install -y vim
RUN yum install -y net-tools

#暴露端口
EXPOSE 80

#输出信息
CMD echo $MYPATH
CMD echo "---end---"
CMD /bin/bash
=========================================================================================

2.通过文件构建镜像
[root@localhost dockerfile]# docker build -f mydockerfile-centos\:7 -t mycentos:1.0 .

3.测试运行
[root@localhost dockerfile]# docker run -it mycentos:1.0

[root@7dd32d7af670 local]# pwd
/usr/local
[root@7dd32d7af670 local]# vim 1.txt
[root@7dd32d7af670 local]# ifconfig 

# docker history查看镜像制作历史
[root@localhost ~]# docker history  dc742ff2df7d

发布镜像DockerHub

推送镜像到DockerHub
[root@localhost ~]# docker push weishuo/mysql:1.0

发布镜像阿里云

参考阿里云文档


docker网络

#查看容器内host配置
[root@localhost ~]# docker exec -it tomcat03 cat /etc/host

#镜像内ping
[root@localhost ~]# docker exec -it tomcat03 ping Tomcat01

#查看镜像内ip地址
[root@localhost ~]# docker exec -it tomcat03 ip address

#实现tomcat02和tomcat03连通
[root@localhost ~]# docker run -d -P --name tomcat02 --link tomcat03 容器名

自定义网络(桥接)

#查看dorcker网络
[root@localhost /]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
32c07146928e   bridge    bridge    local

#1
[root@localhost /]# docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynat
92d1be930dd6439ab57f0f3f2542db076c31deeb6ab50ada3ee06b75e823f278

#2
[root@localhost /]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
32c07146928e   bridge    bridge    local
0e5820bd3ca8   host      host      local
92d1be930dd6   mynat     bridge    local
91733f872cab   none      null      local

#3
[root@localhost /]# docker network inspect mynat 
{
                    "Subnet": "192.168.0.0/16",
                    "Gateway": "192.168.0.1"
}


本文含有隐藏内容,请 开通VIP 后查看