分享一下我使用过的大部分 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 //启动一个在运行的容器
下边列举了大部分常用的命令,其他的可以查询官网作为补充。
也可以在官网 进行查询 : https://hub.docker.com/search?q=&type=image
运行是可以运行,但是,要根据具体的镜像来进行指定的设置才可以,此处只做举例。
其实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 宿主机端口:容器端口
这个概念有点像,容器端口就是服务器内部的应用自己的端口。
而宿主机端口,就是外网端口,你要访问的实际端口,这个端口会冲突,只能有一个。因为你是基于外网进行访问的。
如果有两个redis,可能配置如下所示(外部的端口,对同一个IP来讲端口不能重复的,但是,容器内部,它自己就是本身的端口)
-p 6379:6379
-p 6380:6379
这就是给容器取了个名字
-v 宿主机文件存储位置:容器内文件位置
其实也算是映射,就是让容器里的某个文件路径映射到容器外的某个路径上,这样,写入容器的内容,就直接写到容器外的路径了。
-e key=value -e key2=value2
需要把环境变量传递给容器,让容器运行的时候,就有这些环境变量
就是让此服务,在后台运行,否则的话,运行的时候,命令行就能看到其日志,关闭控制台,此服务就停止了。
开机自启动功能,实际上它是容器引擎服务启动,它才启动。
要设置容器引擎开机启动才可以
我这边是Docker Desktop,所以,需要设置
E盘下就有此文件了 redis.tar
主要要配置映射文件的路径
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
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
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/
docker run -d -p 8500:8500 --name=dev-consul consul
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
docker run --name some-postgres -e POSTGRES_PASSWORD=123456 -p 5432:5432 -d postgres
启动
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
docker run --name mongoDemo -itd -p 27017:27017 mongo
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
docker run --name redis -p 6379:6379 -d redis
docker run -p 6370:6379 --name redis-redisjson -d redislabs/rejson:latest
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
有些容器,我们想进去做一些事情,但是有些命令会不存在,我们就可以这样做
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
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
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做个私人镜像库,把自己的镜像存起来。
总的来说,挺好玩的。
一键三连呦!,感谢大佬的支持,您的支持就是我的动力!