docker初识--简单用法
一、环境安装
1、安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2、一键安装docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
3、设置开启自启
systemctl enable docker
4、重启docker
systemctl restart docker
5、切换docker源(官方源地址较慢)
sudo yum-config-manager \
--add-repo \
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
二、docker命令基本使用
这里使用的是使用的DaoCloud 道客网络
1、docker pull 拉取centos镜像
docker pull daocloud.io/library/centos:latest
2、docker images 列出镜像列表
3、docker search xxx 查找镜像
docker search httpd
4、docker rmi 镜像名称 删除镜像
5、docker ps -a 列出容器 (包括未启动)
6、docker rm 容器名称 删除容器
7、docker run 运行一个新容器
docker run itd --name 容器名称 镜像名称
例:创建一个mysql
docker run -itd --name mysql_575 -e MYSQL_ROOT_PASSWORD=123456 -p 3339:3306 镜像名称或地址
常用选项说明
-d, --detach=false
, 指定容器运行于前台还是后台,默认为false-i, --interactive=false
, 打开STDIN,用于控制台交互-t, --tty=false
, 分配tty设备,该可以支持终端登录,默认为false-u, --user=""
, 指定容器的用户-a, --attach=[]
, 登录容器(必须是以docker run -d启动的容器)-w, --workdir=""
, 指定容器的工作目录-c, --cpu-shares=0
, 设置容器CPU权重,在CPU共享场景使用-e, --env=[]
, 指定环境变量,容器中可以使用该环境变量-m, --memory=""
, 指定容器的内存上限-P, --publish-all=false
, 指定容器暴露的端口-p, --publish=[]
, 指定容器暴露的端口-h, --hostname=""
, 指定容器的主机名-v, --volume=[]
, 给容器挂载存储卷,挂载到容器的某个目录(docker run -it --name mtr -v $PWD:/opt daocloud.io/library/centos)--volumes-from=[]
, 给容器挂载其他容器上的卷,挂载到容器的某个目录- --restart
="no"
, 指定容器停止后的重启策略:- no:容器退出时不重启
- on-failure:容器故障退出(返回值非零)时重启
- always:容器退出时总是重启
配置容器自启动
docker run --restart always
8、docker create 创建一个新容器
9、docker exec 进入容器内部
docker exec -it 容器名称 /bin/bash
- -d :分离模式: 在后台运行
- -i :即使没有附加也保持STDIN 打开
- -t :分配一个伪终端
一般都是用的-it
10、exit退出容器
11、docker cp 宿主机和容器文件拷贝
宿主机拷贝文件到容器
docker cp 宿主机路径 容器id:容器内路径
容器文件拷贝到宿主机
docker cp 容器id:容器内路径 宿主机路径
12、docker info 显示系统信息
13、docker 启动、重启、停止容器及容器状态
docker start 容器名称
docker restart容器名称
docker stop容器名称
docker status 容器名称
14、docker logs 查看容器日志
docker logs -f 容器名称 实时显示容器日志
学习过程中遇到的问题:
1、日志时间不对,和系统当前时间差了八个小时
2、无法下载vi等命令
- 1、键盘输入命令:apt-get install vim,如果报错,则需进行第二步
- 2、apt-get update
3、宿主机无法访问虚拟机内的docker外网ip地址
(1)、查看虚拟机ip地址
(2)、管理员身份打开宿主机powershell:执行命令: ROUTE -p add 172.17.0.0 mask 255.255.0.0 192.168.19.139
意思就是访问172.17.*.*网段数据报全部发送到192.168.19.139
使用route print命令可以看见你的系统目前的路由表