分享一下我使用过的大部分 docker 镜像安装代码,省的去找的时候不方便。
Docker 常用命令解释 docker version //查看版本详情 docker info //查看docker详情 docker images //查看所有存在的镜像 docker search imagename //搜索指定名字的镜像 docker pull 镜像名:tag(可为空) // tag 不加,默认为 latest(最新版) 加了,就是指定版本 docker run 镜像名:Tag(可为空) //运行指定的镜像 docker image rm 镜像名称:Tag(可为空)/镜像ID //删除指定的镜像或者通过镜像ID来删除 docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字 //存储为tar格式的压缩包 docker load -i name.tar // 加载镜像从tar压缩包 docker ps //查看正在运行的容器 docker stop 容器名/容器ID //停止一个在运行的容器 docker start 容器名/容器ID //启动一个在运行的容器
下边列举了大部分常用的命令,其他的可以查询官网作为补充。
docker version docker info docker images docker search imagename 也可以在官网 进行查询 :https://hub.docker.com/search?q=&type=image
docker pull 镜像名 docker run 镜像名 运行是可以运行,但是,要根据具体的镜像来进行指定的设置才可以,此处只做举例。
其实run命令内部包含了很多的参数,下面就对其实际用的参数,做个简单的解析,更多的还需要参考官网
举个例子
docker run -p 3306 :3306 --name mysql -v /d/dockerConfig/mysql/data:/var /lib/mysql -v /d/dockerConfig/mysql/config:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql
端口映射 -p -p 宿主机端口:容器端口
这个概念有点像,容器端口就是服务器内部的应用自己的端口。而宿主机端口,就是外网端口,你要访问的实际端口,这个端口会冲突,只能有一个。因为你是基于外网进行访问的。
如果有两个redis,可能配置如下所示(外部的端口,对同一个IP来讲端口不能重复的,但是,容器内部,它自己就是本身的端口)
-p
6379 :6379 -p 6380 :6379
--name 这就是给容器取了个名字
-v 数据挂载 -v 宿主机文件存储位置:容器内文件位置
其实也算是映射,就是让容器里的某个文件路径映射到容器外的某个路径上,这样,写入容器的内容,就直接写到容器外的路径了。
-e 环境变量 -e key=value -e key2=value2
需要把环境变量传递给容器,让容器运行的时候,就有这些环境变量
-d 后台运行 就是让此服务,在后台运行,否则的话,运行的时候,命令行就能看到其日志,关闭控制台,此服务就停止了。
--restart=always 开机自启动功能,实际上它是容器引擎服务启动,它才启动。
要设置容器引擎开机启动才可以
我这边是Docker Desktop,所以,需要设置
docker image rm 镜像名称 docker save 镜像名/镜像ID -o 镜像保存位置 E盘下就有此文件了 redis.tar
docker load -i name.tar docker ps docker stop 容器名/容器id docker start 容器名/容器id 常用容器的使用命令 mysql 主要要配置映射文件的路径
docker run -p 3306 :3306 --name mysql -v /d/dockerConfig/mysql/data:/var
/lib/mysql -v /d/dockerConfig/mysql/config:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql
Elasticsearch docker run -d --name elasticsearch -p 9200 :9200 -p 9300 :9300 -e "discovery.type=single-node" elasticsearch:7.14 .2
可以请求此地址 : localhost:9200/_license/start_trial?acknowledge=true&pretty
activemq docker run --name activemq -it --rm -d -p 8161 :8161 -p 61616 :61616 -p 61613 :61613 webcenter/activemq:latest
admin admin http://127.0.0.1:8161/admin/
consul docker run -d -p 8500 :8500 --name=dev-consul consul
memcached docker run -p 11211 :11211 --name my-memcache -d memcached docker run -p 11233 :11211 --name my-memcache2 -d memcached:1.4 .29 docker run -p 11244 :11211 --name my-memcache3 -d memcached:1.4 .33 memcached -o lru_crawler -m 1024
postgres docker run --name some-postgres -e POSTGRES_PASSWORD=123456 -p 5432 :5432 -d postgres
clickhouse 启动 docker run -d --name clickhouseserver --ulimit nofile=262144 :262144 -p 8123 :8123 -p 9000 :9000 -p 9009 :9009 -p 9004 :9004 yandex/clickhouse-server docker启动clickhouse-client docker run -it --rm --link clickhouseserver:clickhouse-server yandex/clickhouse-client --host clickhouse-server
mangodb docker run --name mongoDemo -itd -p 27017 :27017 mongo
nacos docker run --name nacos -d -p 8848 :8848 ^ -e MODE=standalone ^ -e MYSQL_SERVICE_HOST=192.168 .1 .8 ^ -e MYSQL_SERVICE_DB_NAME=nacos_config ^ -e MYSQL_SERVICE_PORT=3306 ^ -e MYSQL_SERVICE_USER=root ^ -e MYSQL_SERVICE_PASSWORD=123456 ^ nacos/nacos-server
http://localhost:8848/nacos/#/configurationManagement?dataId=&group=&appName=&namespace=56dea55e-f314-418b-b139-6795f5f22849&pageSize=&pageNo=&namespaceShowName=db
redis docker run --name redis -p 6379 :6379 -d redis
redis-redisjson
docker run -p 6370 :6379 --name redis-redisjson -d redislabs/rejson:latest
canal docker run --restart=always --name core_productservice_canal \ -e canal.instance.master.address=192.168 .1 .9 :3306 \ -e canal.instance.dbUsername=root \ -e canal.instance.dbPassword=123456 \ -e canal.instance.defaultDatabaseName=Test \ -e canal.instance.filter.regex=.*\\\..* -p 8001 :11111 -d canal/canal-server
容器扩展 有些容器,我们想进去做一些事情,但是有些命令会不存在,我们就可以这样做
vim ipconfig apt-get update apt-get install vim -y apt-get install net-tools -y apt-get install inetutils-ping -y apt-get install sudo
防火墙 apt-get install ufw apt-get autoremove ufw 关闭ubuntu的防火墙 ufw disable 开启防火墙 ufw enable
ubuntu开启telnet服务 sudo apt-get install telnet sudo apt-get install openbsd-inetd -y sudo apt-get install telnetd -y sudo /etc/init .d/openbsd-inetd restart# 查看 telnet服务是否开启 sudo netstat -a | grep telnet telnet 127.0 .0 .1 22
ssh apt-get remove openssh-server apt-get install openssh-server -y vim /etc/ssh/sshd_config Port 2222 #设置ssh的端口号, 由于22在windows中有别的用处, 尽量不修改系统的端口号 PermitRootLogin yes # 可以root远程登录 PasswordAuthentication yes # 密码验证登录 重启服务 sudo service ssh --full-restart 在其他机子上打开xshell 或者linux , 输入以下命令: ssh user@ip #eg: ssh fzl@128.96.8.113 连接成功!开始愉快的工作吧 ssh root@172.22 .199 .141
总结 docker 大部分服务都是linux 为基础容器的,所以,必备的基础linux知识是不可或缺的,也给一些想玩linux,但是,沒有环境的人一个不错的机会。
当然,还可以自己创建DockerFile 来制造镜像文件,生成自己的镜像。
也可以把镜像传到公共镜像库,或者私人镜像库,也可以自己用docker做个私人镜像库,把自己的镜像存起来。
总的来说,挺好玩的。
阅 一键三连呦!,感谢大佬的支持,您的支持就是我的动力!