docker常见命令
启动一个已经创建过的容器
docker start
创建一个新容器并运行一个命令
docker run
在运行的容器中执行命令
docker exec
查询Mysql镜像
docker search mysql
拉取Mysql(默认最新版)
docker pull mysql
docker安装流程
1.yum包更新到最新
yum update
2.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
3.设置yum源(阿里仓库)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.查看所有仓库中docker版本,可选择特定版本安装(直接安装最新版可忽略
yum list docker-ce --showduplicates | sort -r
5.安装Docker (yum install docker-ce-版本号,不加 -版本号默认最新版)
yum install docker-ce
6.开机启动docker
systemctl start docker
7.拉取docker-compose (后面为可选安装项)
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
8.赋权限
chmod +x /usr/local/bin/docker-compose
9.查看版本
docker-compose --version
docker安装mysql
1.拉取mysql镜像(不加版本号默认最新)
docker pull mysql
2.启动mysql
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
3.进入容器
docker exec -it mysql bash
4.登录mysql 并允许远程连接
mysql -u root -p;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'wyt123!';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'wyt123!';
5.刷新数据库
flush privileges;
docker问题汇总
1.安装docker时出现
Problem: package docker-ce-3:19.03.12-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed 错误
a.此时需要安装新版containerd.io
dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
b.再次安装
yum install docker-ce
c.查看版本
docker -v
2.拉取 mysql 太慢
a.拉取最新版mysql
docker pull mysql:latest
b.将docker修改为国内镜像源,在/etc/docker/daemon.json文件中添加下面参数
{
"registry-mirrors" : ["https://docker.mirrors.ustc.edu.cn"]
}
[注1]若docker目录下没有daemon.json文件需要手动创建该文件再添加参数
[注2]此处使用的是中国科技大学的docker镜像源
c.重启docker
service docker restart
3.docker及其容器开机自启
- docker 开机自启动
systemctl enable docker.service
- 如果已经启动的项目,则使用update更新
docker update --restart=always 容器ID
- 容器未启动 启动时加--restart=always
docker run -tid --name isaler_v0.0.11 -p 8081:8080 --restart=always -v /alidata/iDocker/run/projectImages/isaler/v0.0.11/log:/usr/local/tomcat/logs isaler_v0.0.11
[注]
Flag Description
no 不自动重启容器. (默认value)
on-failure 容器发生error而退出(容器退出状态不为0)重启容器
unless-stopped 在容器已经stop掉或Docker stoped/restarted的时候才重启容器
always 在容器已经stop掉或Docker stoped/restarted的时候才重启容器