网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
(0)docker run
docker run
- -i:以交互模式运行容器
- -t:为容器重新分配一个伪输入终端
- —name :容器名称
- —privileged: 设置容器公开权限(默认为true)
- -p :映射端口 linux端口: 容器内置端口(mysql默认端口为3306)
- -v : linux挂载文件夹/文件和容器内路径的映射
- -e: 容器的环境变量(设置mysql默认用户名&密码)
- -d: 后台运行容器,并返回容器ID
docker run -it \
--name mysql_3306 \
--privileged \
-p 3306:3306 \
-v /usr/local/software/mysql/3306/conf/my.cnf:/etc/mysql/my.cnf \
-v /usr/local/software/mysql/3306/data:/var/lib/mysql \
-v /usr/local/software/mysql/3306/mysql-files:/var/lib/mysql-files \
-e MYSQL\_ROOT\_PASSWORD=123 \
-d mysql
(1)docker ps
ps——process进程
(2)docker stop + 容器名称
停止容器
(3)docker ps -a
查看启动过的容器,所有容器
(4)docker restart/start
(5)docker rm + 容器名称
删除指定的容器
docker image rm + 镜像名字
先停止后删除
(6)docker image ls
查看镜像的名称
(7)docker search 镜像名称
从docker库中搜索docker的镜像
根据版本搜索 docker search mysql:5
(8)docker pull 镜像名称
从docker库中拉取镜像
(9)docker logs 容器名称
docker 日志,查看容器运行时的日志
(10)docker inspect 查询容器内部的ip地址
docker inspect mysql_3306
进行流处理,管道,过滤
docker inspect mysql_3306 | grep IP
[root@localhost ~]# docker inspect mysql_3306 |grep IPA
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAMConfig": null,
"IPAddress": "172.17.0.2",
(11)docker exec进入容器内部
docker exec -it 容器名称 bash
进入容器实质上也是进入了一个linux环境。
docker exec
- -it:以交互模式运行容器 ,为容器重新分配一个伪输入终端。
- bash: bash(GNU Bourne-Again Shell)是最常用的一种shell(运行在终端的互动程序)。
附录:把容器名字改一下
问题:进入容器显示bash-4.4的解决方案
进入容器后输入以下两个命令
cp /etc/skel/.bashrc /root/
cp /etc/skel/.bash_profile /root/
退出容器后再次进入
bash-4.4# cp /etc/skel/.bashrc /root/
bash-4.4# cp /etc/skel/.bash_profile /root/
bash-4.4# exit
exit
[root@localhost 3306]# docker exec -it mysql_3306 bash
[root@ed5404afb218 /]#
Docker进阶命令
定义静态网段
[root@localhost conf]# docker network ls
NETWORK ID NAME DRIVER SCOPE
480a87f5e493 bridge bridge local
76aceec0d608 host host local
79544eec7527 none null local
[root@localhost conf]#
自定义docker的静态网段,关机重启,不会改变redis的ip
docker network create --driver bridge --subnet=172.18.12.0/16 --gateway=172.18.1.1 pet_docker_net
[root@localhost conf]# docker network ls
NETWORK ID NAME DRIVER SCOPE
480a87f5e493 bridge bridge local
76aceec0d608 host host local
79544eec7527 none null local
[root@localhost conf]# docker network create --driver bridge --subnet=172.18.12.0/16 --gateway=172.18.1.1 pet_docker_net
9d04811dfd2a959c8e653cc1c0edf056f4dbd6c98af8bef0c7c23fad840cf84e
[root@localhost conf]# docker network ls
NETWORK ID NAME DRIVER SCOPE
480a87f5e493 bridge bridge local
76aceec0d608 host host local
79544eec7527 none null local
9d04811dfd2a pet_docker_net bridge local
[root@localhost conf]#
拷贝文件
(1)centos拷贝到docker容器
docker cp ./rabbitmq_delayed_message_exchange-3.9.0.ez rabbitmq_pet:/plugins
(2)容器拷贝到centos
容器内配置文件的位置/etc/my.conf,拷贝到centos
[root@192 mysql]# docker cp mysql_3306_try:/etc/my.cnf my.cnf
[root@192 mysql]# mv conf ./3310/conf/
[root@192 mysql]# ls
3306 3310
容器内配置文件的位置/etc/my.cnf,拷贝到centos下
Linux的centos中安装docker
删除之前的docker后安装
停止docker服务
[root@localhost ~]# systemctl stop docker
查询安装的docker服务
[root@localhost ~]# yum list installed |grep docker
删除docker的组件
[root@localhost ~]# yum -y remove docker-*
删除docker文件夹
[root@localhost ~]# rm -rf /var/lib/docker
安装docker
使用yum安装docker不适用官方的安装方式,发现:官方的安装方式容器中的内容不完整。
[root@localhost ~]# yum install -y docker
启动docker
[root@localhost ~]#
[root@localhost ~]# systemctl start docker
[root@localhost ~]# docker -v
Docker version 1.13.1, build 7d71120/1.13.1
image-20230608120142044
设置docker在linux启动时启动
systemctl enable docker
配置本地镜像库
从网络获取docker镜像太慢,设置阿里云的镜像库。
修改:/etc/docker/daemon.json文件
[root@localhost ~]# vim /etc/docker/daemon.json
[root@localhost ~]# cat /etc/docker/daemon.json
{
"registry-mirrors":["https://ung2thfc.mirror.aliyuncs.com"]
}
[root@localhost ~]# systemctl restart docker
docker常见问题
1.容器中没有linux命令
当使用linux命令时,显示“command not found”。
问题描述
解决方案
(1)更新容器中linux
apt-get update
root@1aba593b6c47:/etc/mysql# apt-get update
(2)安装程序
apt-get install 命令
root@130dddbf14ee:/# apt-get install vim
2.容器中下载缓慢
问题描述
运行apt-get update 时显示错误:
Err:1 http://deb.debian.org/debian buster InRelease 。
解决方案
编辑 /etc/docker/daemon.json, 修改dns
[root@localhost ~]# vim /etc/docker/daemon.json
{
"registry-mirrors":["https://ung2thfc.mirror.aliyuncs.com"]
}
{
"dns":["114.114.114.114","8.8.8.8"]
}
重启docker
[root@localhost ~]# systemctl restart docker
单纯下载缓慢,输入下面命令解决
输入下面命令,设置镜像源
vim /etc/docker/daemon.json
{"registry-mirrors":["https://ung2thfc.mirror.aliyuncs.com"]}
cat /etc/docker/daemon.json
3.IPv4转发已禁用问题
为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
本份面试集锦涵盖了
- 174 道运维工程师面试题
- 128道k8s面试题
- 108道shell脚本面试题
- 200道Linux面试题
- 51道docker面试题
- 35道Jenkis面试题
- 78道MongoDB面试题
- 17道ansible面试题
- 60道dubbo面试题
- 53道kafka面试
- 18道mysql面试题
- 40道nginx面试题
- 77道redis面试题
- 28道zookeeper
总计 1000+ 道面试题, 内容 又全含金量又高
- 174道运维工程师面试题
1、什么是运维?
2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
3、现在给你三百台服务器,你怎么对他们进行管理?
4、简述raid0 raid1raid5二种工作模式的工作原理及特点
5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!