Docker 系列之 DockerDesktop 常用第三方应用安装以及命令解释

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 系列之 DockerDesktop 常用第三方应用安装以及命令解释

docker info

Docker 系列之 DockerDesktop 常用第三方应用安装以及命令解释

docker images

Docker 系列之 DockerDesktop 常用第三方应用安装以及命令解释

docker search imagename

Docker 系列之 DockerDesktop 常用第三方应用安装以及命令解释

也可以在官网 进行查询 :https://hub.docker.com/search?q=&type=image

docker pull 镜像名

Docker 系列之 DockerDesktop 常用第三方应用安装以及命令解释

docker run 镜像名

Docker 系列之 DockerDesktop 常用第三方应用安装以及命令解释

运行是可以运行,但是,要根据具体的镜像来进行指定的设置才可以,此处只做举例。

其实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 系列之 DockerDesktop 常用第三方应用安装以及命令解释

docker image rm 镜像名称

Docker 系列之 DockerDesktop 常用第三方应用安装以及命令解释

docker save 镜像名/镜像ID -o 镜像保存位置

Docker 系列之 DockerDesktop 常用第三方应用安装以及命令解释

E盘下就有此文件了 redis.tar

docker load -i name.tar

Docker 系列之 DockerDesktop 常用第三方应用安装以及命令解释

docker ps

Docker 系列之 DockerDesktop 常用第三方应用安装以及命令解释

docker stop 容器名/容器id

Docker 系列之 DockerDesktop 常用第三方应用安装以及命令解释

docker start 容器名/容器id

Docker 系列之 DockerDesktop 常用第三方应用安装以及命令解释

常用容器的使用命令

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做个私人镜像库,把自己的镜像存起来。

总的来说,挺好玩的。