docker 菜鸟网站
docker 官网地址
核心架构是什么?
如何安装
离线安装依赖的rpm包
详细参考:
文章1 blog.csdn.net/Charles2628…
文章2 blog.csdn.net/Charles2628…
docker 进程
ps -ef|grep docker
root 3907 242079 0 7月27 ? 00:20:56 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 53306 -container-ip 172.17.0.3 -container-port 3306
root 3914 242090 0 7月27 ? 00:04:42 docker-containerd-shim -namespace moby -workdir /mnt/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/88cad27a3449d1cef7d3ea3d9a7a5b7f07fe295b05b84d95feaf90c8ae5edf61 -address /var/run/docker/containerd/docker-containerd.sock -containerd-binary /usr/bin/docker-containerd -runtime-root /var/run/docker/runtime-runc
root 242079 1 0 7月13 ? 04:09:13 /usr/bin/dockerd
root 242090 242079 0 7月13 ? 13:37:11 docker-containerd --config /var/run/docker/containerd/containerd.toml
docker 基本命令学习
1 docker container 相关命令
docker ps ## 列出当前正在运行的container
docker ps -a ## 列出所有的container包含停止的
docker rm -f containerName ###强制删除docker container,containerName 是名称, 也可以container的唯一编号
docker stop containerName
docker start containerName
docker restart containerName
###特殊的清除命令
docker container prune ##删除所有停止运行的容器
[root@localhost nacos]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6eec0d260f19 mysql:5.7.35 "docker-entrypoint.s…" 5 weeks ago Up 5 weeks 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
88cad27a3449 mysql:5.7.35 "docker-entrypoint.s…" 5 weeks ago Up 5 weeks 33060/tcp, 0.0.0.0:53306->3306/tcp ccm-mysql
828313f68b9c smc-nacos-server:latest "bin/docker-startup.…" 7 weeks ago Up 7 weeks 0.0.0.0:8848->8848/tcp nacos
41f02297e87c smc-rabbitmq-management:latest "docker-entrypoint.s…" 4 months ago Up 7 weeks 4369/tcp, 0.0.0.0:5671->5671/tcp, 5672/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp rabbitmq
a5dec025872c smc-redis:5.0.5 "docker-entrypoint.s…" 4 months ago Up 7 weeks 0.0.0.0:6000->6000/tcp, 6379/tcp redis
ea8bf3c0c08c fastdfs:latest "sh storage.sh" 4 months ago Up 7 weeks storage
92d483d752c0 fastdfs:latest "sh tracker.sh" 4 months ago Up 7 weeks tracker
[root@localhost nacos]#
2 docker image 相关命令
docker images ## 列出所有的image
docker tag ubuntu:15.10 runoob/ubuntu:v3 ##将镜像ubuntu:15.10标记为 runoob/ubuntu:v3 镜像。 可以理解为是copy一份
docker rm -f imagesName ##强制删除镜像
docker save --output nacos.tar nacos ##导出busybox镜像
docker save myimage:latest | gzip > myimage_latest.tar.gz ##导出为gz格式
docker load --input nacos.tar ## 导入镜像
[root@localhost nacos]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7.35 8cf625070931 5 weeks ago 448MB
smc-rabbitmq-management latest 7c275a273df8 12 months ago 156MB
smc-nacos-server latest 8afb574f2220 15 months ago 756MB
smc-mysql 5.7 a4fdfd462add 15 months ago 448MB
smc-redis 5.0.5 63130206b0fa 24 months ago 98.2MB
fastdfs latest a729ac95698a 5 years ago 460MB
[root@localhost nacos]#
3.其他命令
docker exec -it containerName bash ## 交互式进入docker容器内部
docker cp storage.sh storage:/ ##将storage.sh 文件复制到容器名称为storage内部的/ 路劲下
systemctl restart docker ##重启docker服务, 如果容器配置了 --restart=always 那么容器将自动启动
4 dockerfile 相关
FROM openjdk:8-jre-slim #### FROM命令, 基于基础镜像
MAINTAINER xuxueli ###维护者是谁
ENV PARAMS="" ###申明环境变量
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone ###RUN 运行linux命令,可以是容器内部,也可以是与容器交互的方式
ADD target/xxl-job-admin-*.jar /app.jar ###ADD命令, 将文件copy到容器内部的目录下, 如果是tar.gz格式的文件,将会自动解压
ADD XXX.tar.gz /
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /app.jar $PARAMS" ] ### ENTRYPOINT、CMD 表示容器启动之后,第一条执行的脚步命令,由docker 容器自身触发
项目中使用 docker run 启动镜像命令
#!/bin/sh
name=nacos
docker rm ${name} -f
docker run -d \ ###表示后台运行
--restart=always \ ###只要docker 服务存在,容器意外退出的情况下,自动启动
-p 8848:8848 \ ### 通过iptables的nat表,转发端口8848
-e TZ="Asia/Shanghai" \ ####-e 等同--env表示设置环境变量
--env MODE=standalone \
--env SPRING_DATASOURCE_PLATFORM=mysql \
--env MYSQL_SERVICE_DB_NAME=nacos \
--env MYSQL_SERVICE_PORT=53306 \
--env MYSQL_DATABASE_NUM=1 \
--env MYSQL_SERVICE_USER=nacos \
--env MYSQL_SERVICE_HOST=10.35.39.195 \
--env MYSQL_SERVICE_PASSWORD=nacos123 \
-v /mnt/nacos/logs:/home/nacos/logs \ ###挂载卷, 将宿主机的/mnt/nacos/logs目录挂载到容器的/home/nacos/logs, 这个比较重要,用于数据持久化,容器重启之后,数据不丢失
-v /mnt/nacos/data:/home/nacos/data \
--name ${name} smc-nacos-server:latest