卸载docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
rm -rf /etc/systemd/system/docker.service.d
rm -rf /var/lib/docker
rm -rf /var/run/docker
安装docker
下载网址 https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
我下载的是:docker-ce-18.06.2.ce-3.el7.x86_64.rpm
上传到Linux下的opt文件夹中
yum install -y docker-ce-18.06.2.ce-3.el7.x86_64.rpm
启动和停止docker
启动docker:systemctl start docker
停止docker:systemctl stop docker
重启docker:systemctl restart docker
查看docker状态:systemctl status docker
查看docker信息(检查是否安装成功):docker info
配置docker镜像加速
新建文件:/etc/docker/daemon.json
{
"registry-mirrors": ["https://ksc53x4t.mirror.aliyuncs.com"]
}
重启docker守护线程:systemctl daemon-reload
重启docker服务:systemctl restart docker
查看docker容器信息:docker info
出现下面信息说明设置加速成功:
Registry Mirrors:
https://ksc53x4t.mirror.aliyuncs.com/
docker搜索镜像
docker search tomcat
拉取镜像
docker pull 镜像名称:版本标签
docker pull mysql:5.7//拉去mysql5.7版本的镜像
查看本地镜像
docker images
删除docker镜像
docker rmi [image]
或者
docker image rm [image]
强制删除docker镜像
显示所有状态的容器 docker ps -a / docker container ls -a
然后清理所有终止状态的容器 docker container prune
也可以根据提示来的,加-f强制删除镜像。
顺便提一下,docker命令:
1.docker rm [-f] <容器ID或容器名>
2.docker stop<容器ID或容器名>
保存镜像为文件
docker save -o /root/tomcat.tar tomcat:8.5.57-jdk8-openjdk-slim
//-o /root/tomcat.tar 为镜像文件保存的位置
将镜像文件回复成镜像
docker load -i /root/tomcat.tar
创建容器
docker run
(1)、创建并运行一个java容器,打印helloworld!
docker run java:8 /bin/echo 'Hello World!'
(2)、创建一个Centos容器
docker run -dti --name=c1 centos:centos7 /bin/bash
-d 表示守护式容器(用户退出容器后,容器依然可以正常运行)
-i 运行容器
-t 交互 后面跟交互shell脚本 /bin/bash
centos:centos7 镜像名称
(3)、创建一个有网络使用容器
如:创建一个容器nginx 端口为 80
docker run -di --name=n1 -p 88:80 nginx:latest
-p 端口映射 宿主机端口:容器端口
列出容器
(1)、列出当前正在运行的容器 docker ps
(2)、列出当前全部容器 docker ps -a
(3)、列出当前容器的所有编号 docker ps -a -q
停止容器
docker stop 容器的names
docker stop 容器的CONTAINER ID
如:
docker stop c1
docker stop 36bee7ca1cf4
启动容器
docker start 容器名称或容器编号
docker start n1
强制停止
docker kill 容器名称或者容器编号
重启容器
docker restart 容器名称或者容器编号
进入容器
docker exec -it mysql /bin/bash
退出容器
exit
从宿主机拷贝文件到容器
docker cp /java511.txt c1:/root/
从容器拷贝文件回宿主机
docker cp c1:/1.java /root/2.java
挂载宿主机的指定目录到容器
(如果你共享的是多级的目录,可能会出现权限不足的提示。这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题)
docker run -di --name=c2 -v /root/html:/test0722 --privileged centos:centos7
删除容器
docker rm 容器名称或者编号 //注意 不能删除正在运行中容器, 需要停掉才可以删除
查看IP和日志
docker inspect n1 //输出的内容较多
docker inspect --format='{{.NetworkSettings.IPAddress}}' n1 //只输出ip
5.15、查看容器日志输出
docker logs n1 查看日志
docker logs --tail="2" n1 查看日志 左后2行。
docker创建mysql容器
拉取mysql容器
docker pull mysql:5.7
创建用于挂载的目录
mkdir -p /usr/data/mysql/logs /usr/data/mysql/data /usr/data/mysql/conf
如果不创建挂载目录,一旦容器重启,则数据会全部丢失。
创建my.cnf配置文件
cd /data/mysql
touch my.cnf
然后使用vim编辑my.cnf文件,文件内容如下:
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
创建容器
docker run --restart=always -p 3306:3306 --name mysql -v /usr/data/mysql/conf:/etc/mysql -v /usr/data/mysql/logs:/var/log/mysql -v /usr/data/mysql/data:/var/lib/mysql -v /usr/data/mysql/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
--restart=always 当docker重启时,容器也重启
--name 容器命名
-p 3306:3306 宿主机和容器端口映射
-v(此命令中有三个-v参数) 挂载数据等内容,避免容器重启造成的数据丢失
-e 设置环境变量(此处设置了mysql的密码)
-d 后台启动(容器不会因为shell的退出而停止运行)
连接mysql
进入mysql容器(可以使用名称或容器ID进入):docker exec -it mysql bash
连接mysql服务器:mysql -uroot -p123456
创建数据库test:create database test;
docker创建redis容器
拉取redis镜像
docker pull redis:4.0.8
创建存放redis文件夹存放redis
mkdir /usr/data/redis/data
创建redis容器
docker run -p 6379:6379 -v /usr/data/redis/data:/data --restart=always --name redis -d redis:4.0.8 redis-server --appendonly yes --requirepass "123456"
-p:宿主机端口与容器端口映射
-v:挂载,将容器中的redis持久化数据挂载到宿主机,避免容器重启导致的数据丢失。
--restart=always:无论什么情况挂壁,总是重启
--name:容器名称
-d:使用指定的镜像(redis的4.0.8版本的镜像)在后台运行容器
--appendonly yes:redis运行时开启持久化
--requirepass "123456":设置redis登陆密码
进入redis容器
docker exec -it redis redis-cli
auth 123456//输入redis配置的密码