1.Docker
$ docker images
$ docker search 镜像名称
$ docker pull 镜像名称
$ docker rmi 'docker images -q'
$ docker system df
$ docker ps
$ docker ps -f status=exited
$ docker run -itd ID
$ docker exec -it ID
$ docker stop 容器名称/ID
$ docker start 容器名称/ID
$ docker rm 容器名称/ID
$ docker export ID > test.tar
$ cat test.tar | docker import - test/test:v1.0
$ $ docker import http://app.name.tar example/imagerepo
$ docker cp 需要拷贝的文件或目录 容器名称:容器目录 //文件拷贝到容器(反之亦然)
$ docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7 --privileged=true
$ docker inspect 容器名称(容器ID)
$ docker inspect ID
$ docker build -t imagename . (.代表Dockerfile文件目录)
$ docker tag ID 191517137/flask:v1d
$ docker push 191517137/flask:v1
$ docker rm 容器名称/ID
$ docker start $(docker ps -a |awk '{ print $1}' | tail -n +2)
$ docker stop $(docker ps -a |awk '{ print $1}'|tail -n +2)
$ docker rm $(docker ps -a|awk '{ print $1}'|tail -n +2)
$ docker container prune
$ docker rmi $(docker images -a|awk '{ print $3}'|tail -n +2)
2.Dockerfile
FROM:定制的镜像都是基于 FROM 的镜像。
WORKDIR:设置工作目录。
RUN:用于执行后面跟着的命令行命令。&&符号连接命令,创建 1 层镜像。
CMD:类似于 RUN 指令,用于运行程序,但二者运行的时间点不同:
CMD 在docker run 时运行。(会被覆盖)
RUN 是在 docker build。
COPY:复制指令,从上下文目录中复制文件或者目录到容器里指定路径。
ADD:需要解压文件时使用(自动解压)。
ENV:设置环境变量,定义了环境变量,那么在后续的指令中,就可以使用这个环境变量。
ARG:构建参数,与 ENV 作用一致。不过作用域不一样。ARG 设置的环境变量仅对 Dockerfile 内有效,也就是说只有 docker build 的过程中有效,构建好的镜像内不存在此环境变量。
VOLUME:定义匿名数据卷。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷。
EXPOSE:仅仅只是声明端口。
HEALTHCHECK:用于指定某个程序或者指令来监控 docker 容器服务的运行状态(健康检查)。
支持下列选项:
--interval=<间隔>:两次健康检查的间隔,默认为 30 秒;
--timeout=<时长>:健康检查命令运行超时时间,如果超过这个时间,本次健康检查就被视为失败,默认 30 秒;
--retries=<次数>:当连续失败指定次数后,则将容器状态视为 unhealthy,默认 3 次。
3.Docker-compose.yml
version:指定本 yml 依从的 compose 哪个版本制定的。
build:指定为构建镜像上下文路径。
context:上下文路径。
dockerfile:指定构建镜像的 Dockerfile 文件名。
args:添加构建参数,这是只能在构建过程中访问的环境变量。
labels:设置构建镜像的标签。
target:多层构建,可以指定构建哪一层。
cap_add,cap_drop添加或删除容器拥有的宿主机的内核功能。
cap_add:
- ALL
cap_drop:
- SYS_PTRACE
cgroup_parent:为容器指定父 cgroup 组,意味着将继承该组的资源限制。
command:覆盖容器启动的默认命令。
container_name:指定自定义容器名称,而不是生成的默认名称。
depends_on:设置依赖关系。
docker-compose up :以依赖性顺序启动服务。
docker-compose up SERVICE :自动包含 SERVICE 的依赖项。在以下示例中,docker-compose up web 还将创建并启动 db 和 redis。
docker-compose stop :按依赖关系顺序停止服务。
deploy:指定与服务的部署和运行有关的配置。只在 swarm 模式下才会有用。
devices:指定设备映射列表。
env_file:从文件添加环境变量。
environment:添加环境变量。
expose:暴露端口,但不映射到宿主机,只被连接的服务访问。
extra_hosts:添加主机名映射。
image:指定容器运行的镜像。
network_mode:设置网络模式。
restart:重启策略。
secrets:存储敏感数据。
security_opt:修改容器默认的 schema 标签。
sysctls:设置容器中的内核参数。
volumes:将主机的数据卷或着文件挂载到容器里。
4.Docker stack
$ docker stack ls
$ docker stack services
$ docker stack ps
$ docker stack rm
$ docker stack deploy -c docker-compose.yml stackdemo
$ docker service ps --no-trunc 镜像名称
$ docker service logs -f 镜像名称
5.Linux
$ awk '{print $1,$4}' log.txt
$ crontab -e
$ 0 2 * * * docker restart <容器名>
$ systemctl reatart crond
$ crontab -l
$ netstat -ntulp | grep 80
$ firewall-cmd --list-ports
$ firewall-cmd --zone=public --add-port=80/tcp --permanent
–zone
–add-port=80/tcp
–permanent
firewall-cmd --reload
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state
6.Pycharm Docker
$ docker pull jetbrains/projector-pycharm-p:2020.3-projector-v1.7.0
$ docker run -p 8887:8887 -d --name pycharm --restart=always d45bb3b48f9d
7. Docker 安装
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
$ sudo systemctl start docker
$ curl -SL https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
$ ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose