docker操作

卸载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配置的密码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值