一些Docker常用的命令整理
常用可选参数说明:
* -i 表示以交互模式运行容器。
* -t 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
* --name 为创建的容器命名。
* -v 表示目录映射关系,即宿主机目录:容器中目录。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
* -d 会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器)。
* -p 表示端口映射,即宿主机端口:容器中端口。
* --network=host 表示将主机的网络环境映射到容器中,使容器的网络与主机相同。
创建容器
docker run [option] 镜像名 [向启动容器中传入的命令]
交互式容器
docker run -it --name=ubuntu1 镜像名 /bin/bash
守护式容器
docker run -dit --name=ubuntu1 镜像名 /bin/bash
进入到容器内部
docker exec -it ubuntu2 /bin/bash
将容器制作成镜像
docker commit 容器名 镜像名
镜像打包备份
docker save -o 保存的文件名 镜像名
镜像解压
docker load -i 文件路径/备份文件
Redis
https://hub.docker.com/_/redis?tab=description
启动一个Redis实例
docker run --name some-redis -d redis
从持久性存储开始
docker run --name some-redis -d redis redis-server --appendonly yes
如果启用了持久性,则数据存储在中
VOLUME /data
,可以与--volumes-from some-volume-container
或一起使用-v /docker/host/dir:/data
(请参阅docs.docker卷)。有关Redis Persistence的更多信息,请参见http://redis.io/topics/persistence。
通过连接 redis-cli
docker run -it --network some-network --rm redis redis-cli -h some-redis
配置redis.conf
创建自己的Dockerfile,将上下文中的redis.conf添加到/ data /中,如下所示。
FROM redis
COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
或者,您可以使用docker run
选项沿相同的行指定内容。
$ docker run -v /myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf --name myredis redis redis-server /usr/local/etc/redis/redis.conf
/myredis/conf/
包含redis.conf
文件的本地目录在哪里。使用此方法意味着您不需要为redis容器创建Dockerfile。
Registry
启动仓库容器
docker run -d -p 5000:5000 registry
检查容器效果
curl 127.0.0.1:5000/v2/_catalog
配置容器权限 daemon.json
{"registry-mirrors": ["https://uhgch4dt.mirror.aliyuncs.com"],
"insecure-registries": ["ip地址:5000"]}
重启docker
Nginx
https://hub.docker.com/_/nginx
托管一些简单的静态内容
docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx
或者,Dockerfile
可以使用简单的方法来生成包含必要内容的新图像(这比上面的绑定安装要干净得多):
FROM nginx
COPY static-html-directory /usr/share/nginx/html
将该文件放置在与目录相同的目录中(“ static-html-directory”),运行docker build -t some-content-nginx .
,然后启动容器:
$ docker run --name some-nginx -d some-content-nginx
暴露外部端口
docker run --name some-nginx -d -p 8080:80 some-content-nginx
复杂的配置
$ docker run --name my-custom-nginx-container -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx
有关nginx配置文件的语法的信息,请参见官方文档(特别是《入门指南》)。
ElasticSearch
https://hub.docker.com/_/elasticsearch?tab=description
在开发模式下运行
创建用户定义的网络(用于连接到连接到同一网络的其他服务(例如,Kibana)):
$ docker network create somenetwork
运行Elasticsearch:
$ docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag
在生产模式下运行
Mysql
https://hub.docker.com/_/mysql?tab=description
启动一个MySQL实例:
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
例如主从
docker run --name mysql-slave -e MYSQL_ROOT_PASSWORD=mysql -d --network=host -v /home/python/mysql_slave/data:/var/lib/mysql -v /home/python/mysql_slave/mysql.conf.d:/etc/mysql/mysql.conf.d mysql:5.7.22
此处some-mysql
是您要分配给容器的名称,my-secret-pw
是要为MySQL根用户设置的密码,并且tag
是指定所需MySQL版本的标记。有关相关标签,请参见上面的列表。
从MySQL命令行客户端连接到MySQL
以下命令启动另一个mysql
容器实例,并mysql
针对原始mysql
容器运行命令行客户端,从而允许您针对数据库实例执行SQL语句:
docker run -it --network some-network --rm mysql mysql -hsome-mysql -uexample-user -p
… some-mysql
原始mysql
容器的名称在哪里(连接到some-network
Docker网络)。
该映像也可用作非Docker或远程实例的客户端:
docker run -it --rm mysql mysql -hsome.mysql.host -usome-mysql-user -p
。。。
PostgreSQL
https://hub.docker.com/_/postgres?tab=description
启动一个postgres实例
$ docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
默认postgres
用户和数据库在入口点中使用创建initdb
。
MongoDB
https://hub.docker.com/_/mongo?tab=description
启动mongo服务器实例
docker run --name some-mongo -d mongo:tag
…其中some-mongo
是要分配给容器的名称,并且tag
是指定所需MongoDB版本的标记。
从另一个Docker容器连接到MongoDB
镜像中的MongoDB服务器在标准MongoDB端口上侦听27017
,因此通过Docker网络进行连接与连接到remote相同mongod
。以下示例启动另一个MongoDB容器实例,并mongo
针对上述示例中的原始MongoDB容器运行命令行客户端,从而允许您对数据库实例执行MongoDB语句:
docker run -it --network some-network --rm mongo mongo --host some-mongo test
。。。
RabbitMQ
https://hub.docker.com/_/rabbitmq
它基于所谓的“节点名称”存储数据,该节点名称默认为主机名,我们应该为每个守护程序指定-h
/ --hostname
显式指定,这样我们就不会获得随机的主机名,并且可以跟踪我们的数据:
$ docker run -d --hostname my-rabbit --name some-rabbit rabbitmq:3
。。。
Fastdfs
开启track容器
将 tracker 运行目录映射到宿主机的 /var/fdfs/tracker
目录中
docker run -itd --name tracker --network=host -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker
开启storage容器
- TRACKER_SERVER=Tracker的ip地址:22122(Tracker的ip地址不要使用127.0.0.1)
- 我们将 storage 运行目录映射到宿主机的
/var/fdfs/storage
目录中
docker run -itd --name storage --network=host -e TRACKER_SERVER=xxx.xxx.x.x:22122 -v /var/fdfs/storage:/var/fdfs /fastdfs storage
就先整理一些常用的,以后再加。。。
来源:CSDN
作者:网友小蜘蛛
链接:https://blog.csdn.net/weixin_43062251/article/details/103825065