常用命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
docker images #显示本地镜像
docker search mysql #查询mysql镜像,或者访问网址 https://hub.docker.com/explore/
#常用镜像 openjdk8 python tomcat nginx mysql mongo redis rabbitmq
docker pull mysql #下载mysql镜像
docker rmi image_id/image_name #删除镜像
docker image build -t my_image . # 编译Dockfile文件
docker ps #列出正在运行的容器
docker ps -a #列出所有容器
docker inspect -f='{{.Name}} {{.NetworkSettings.IPAddress}} {{.HostConfig.PortBindings}}' $(docker ps -aq) #docker列出所有容器ip及端口信息
docker run -it --name my_container image_id/image_name #创建并启动并进入容器终端,退出则容器停止
docker run -p 80:80 -v /web:/web --name my_container -d image_id/image_name #后台创建并启动容器,指定-p端口、-v磁盘目录映射,冒号前为宿主机
docker exec -it container_id/container-name /bin/bash #进入容器终端
docker start container_id/container_name #启动容器
docker stop container_id/container_name #停止容器
docker restart container_id/container_name #重启容器
docker rm container_id/container_name #删除容器
docker rm $(docker ps -a -q) #删除所有运行结束了容器, 正在运行的容器不会被删除
docker top container_id/container_name #查看容器内的进程
docker logs [-f] [-t] [--tail string] 容器名 #查看容器的日志输出, -f是打开跟踪, -t是加上时间戳
docker search nginx, 在hub站点中搜索 nginx 镜像
docker image inspect image_id #显示指定镜像的详细信息.
docker container inspect container_id/container-name 命令, 显示指定容器的详细信息,包括容器的Ip
docker images -f dangling=true 命令, 列出没有被容器化的镜像
docker rmi $(docker images -qf dangling=true) #删除那些没有被容器化的镜像
docker system df #可以一次性查看镜像/容器/host volume的磁盘占用情况.
docker ps -s #输出容器的空间占用
|
推送阿里云镜像
1
2
3
|
docker login --username=wu_ton-g@foxmail.com registry.cn-hangzhou.aliyuncs.com
docker tag c059bfaa849c registry.cn-hangzhou.aliyuncs.com/phoenixtree/poplar:0.1
docker push registry.cn-hangzhou.aliyuncs.com/phoenixtree/poplar:0.1
|
mysql7
1
2
|
docker pull centos/mysql-57-centos7
docker run -id --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root centos/mysql-57-centos7
|
rocketmq
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#rocketmq镜像获取
docker pull foxiswho/rocketmq:server-4.5.1
docker pull foxiswho/rocketmq:broker-4.5.1
#rocketmq启动
docker run -id -p 9876:9876 --name=rmqs -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" -e "JAVA_OPTS=-Duser.home=/opt" foxiswho/rocketmq:server-4.5.1
docker run -id -p 10911:10911 -p 10909:10909 --name=rmqb -e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" foxiswho/rocketmq:broker-4.5.1
#主机上需要修改添加 NAMESRV_ADDR /etc/profile
export NAMESRV_ADDR=172.17.0.3:9876
#rmqbroker容器需要配置 rmqserver ip地址
vi /etc/rocketmq/broker.conf
brokerIP1=172.17.0.3
namesrvAddr=192.168.17.130:9876
#rocketmq测试
sh tools.sh org.apache.rocketmq.example.quickstart.Producer
sh tools.sh org.apache.rocketmq.example.quickstart.Consumer
#rocketmq web管理工具
docker run -id --name=rmqweb -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.17.130:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 docker.io/styletang/rocketmq-console-ng
|
docker 基础镜像环境 alpine
在hub官网会经常能看到 alpine 字样, alpine 是要给非常轻量级的Linux发行版,Docker官方已经推荐使用alpine 代替之前的 Ubuntu作为基础镜像环境, 好处是制作出的最终镜像文件很多, 但docker dub上目前仍以 Ubuntu 为主流的基础镜像环境.
下面是几个常用发行版基础镜像的大小.
REPOSITORY TAG IMAGE ID VIRTUAL SIZE
alpine latest 4e38e38c8ce0 5 MB
debian latest 4d6ce913b130 90 MB
ubuntu latest b39b81afc8ca 200 MB
centos latest 8efe422e6104 250 MB
alpine 内置apk包管理器, 而不是Ubuntu的apt, alpine包的网址是 https://pkgs.alpinelinux.org/packages