二、docker命令
目录1.docker1.1是什么1.2docker重要概念2.docker命令2.1 docker version 查看版本2.2 docker images 查看本地镜像2.3 docker search 从 Docker Hub查找镜像2.4 docker pull 从镜像仓库中拉取或者更新指定镜像2.5 docker create 创建容器...
目录
2.3 docker search 从 Docker Hub查找镜像
2.4 docker pull 从镜像仓库中拉取或者更新指定镜像
1.docker
1.1是什么
docker是一个软件,使用GO语言开发的对容器进行管理的软件。
1.2docker重要概念
镜像 image:镜像就是打包好的软件 --》程序代码、基础系统、依赖关系的软件包、数据库、工具
容器 container:运行镜像的地方 --》原理是启动一个进程来运行这个镜像
仓库 repository:集中存放镜像的地方
2.docker基础命令
2.1 docker version 查看版本
2.2 docker images 查看本地镜像
2.3 docker search 从 Docker Hub查找镜像
2.4 docker pull 从镜像仓库中拉取或者更新指定镜像
因为我之前下载过mysql,所以更新之前下载的mysql镜像
#docker pull mysql:5.7.34 指定版本下载
#docker pull mysql/mysql-cluster 指定下载源,可以不从官方下载
2.5 docker create 创建容器
2.5.1创建一个mysql容器
--name 指定名称
-e 宿主机往容器里传递环境变量 environment
MYSQL_ROOT_PASSWORD 是变量名
-p 端口映射 将宿主机3306端口映射到此容器3306端口
mysql 镜像名 后可指定版本
2.5.2创建一个nginx容器
-name 指定容器名称
-v /usr/local/nginx1/html:/usr/share/nginx/html:ro 数据卷
#可以实现宿主机和容器之间的数据共享
/usr/local/nginx1/html 宿主机里的nginx网页路径
/usr/share/nginx/html 容器里的nginx网页路径
2.6 docker start 启动容器
#不一定使用名称启动容器,也可以使用ID启动容器
2.7 docker ps 查看本地容器
CONTAINER 容器编号
IMAGE 镜像
COMMAND 执行的命令
CREATED 创建时间
STATUS 状态
PORTS IP/端口映射
NAMES 容器名
#docker ps -a查看本地所有容器(包括启动和未启动的)
#docker container ls命令也是次效果
2.8 docker stop 停止容器
2.9 docker rm 删除容器
#启动的容器不能被删除,所以删除容器前需要先执行docker stop命令。
2.10 docker run 创建并启动容器
-d 后台运行
#run命令等于create+start
2.11 docker top 查看容器内的进程
2.12 docker logs 查看容器日志
#日志可用于排错
2.13 docker exec 进入容器内部
#容器内部使用的是Debian操作系统
3.连接容器
3.1连接mysql
#本文之前创建的mysql容器版本为5.7.35,这里连接到的mysql版本也是5.7.35,而宿主机的mysql是最新版的,说明我们连接到的是容器里的mysql。
3.2访问nginx
#端口映射为宿主机的8080端口映射到容器里的80端口 ,我们访问到即为正确。
4.限制进程的cpu和内存资源
创建一个容器,让这个进程咋容器里run,这样可以限制容器所使用的cpu和内存,
从而可以达到限制这个进程的cpu和内存的使用
docker run -it --cpu-shares 30 -m 10000000 -d --name seesunman1 centos:7
5.容器内部为什么上不了网
#容器内部就是一个局域网,宿主机作为路由器,默认情况下是不开启路由功能
#云服务器默认开启路由功能,虚拟机的不会默认开启。
临时开启路由功能
echo 1 >/proc/sys/net/ipv4/ip_forward
service docker restart
永久开启路由功能
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 #添加一行
sysctl -p#刷新配置
docker run -it -d --name peanut -p 8090:90 centos:7
#容器创建时加上-p 自动在iptables里添加DNAT和SNAT策略
#没有指定端口则只能实现SNAT功能,容器可以访问外部,不但能实现外部访问容器内部
docker container inspect seesunman可以查看容器ip地址
更多推荐
所有评论(0)