分类 Docker 下的文章

拉取容器

docker-compose pull

运行容器

docker-compose up -d

关闭容器

docker-compose stop

移除容器

docker-compose down

重启容器(当容器卡死时使用)

docker-compose restart

更新容器

先停止并移除旧容器,再拉取并运行新容器
docker-compose stop
docker-compose down
docker-compose pull
docker-compose up -d

1.拉取命令

docker pull cloudnas/clouddrive2

2.启动容器

docker run -d \
--privileged \
--name clouddrive \
--env CLOUDDRIVE_HOME=/Config \
--device /dev/fuse:/dev/fuse \
--restart unless-stopped \
-v <path to accept cloud mounts>:/CloudNAS:shared \
-v <path to app data>:/Config \
-v <other local shared path>:/media:shared \
-p 19798:19798 \
cloudnas/clouddrive2-unstable

3.访问CloudDrive

http://<ip>:19798/

1.安装

docker run -d --restart=always -v /etc/alist:/opt/alist/data -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name="alist" xhofe/alist:latest
/etc/alist为本地卷目录

2.更新

  • docker ps -a #查看容器
  • docker stop ID #停止Alist运行,不然无法删除
  • docker rm ID #删除Alist容器
  • docker pull xhofe/alist:latest
  • 输入1中安装命令

3.重置密码
初始密码指定在第一次启动时的日志中。如果您忘记了管理员的用户名或密码,您可以:

  • 随机生成一个密码:
docker exec -it alist ./alist admin random
  • 手动设置一个密码, NEW_PASSWORD 指你需要设置的密码:
docker exec -it alist ./alist admin set NEW_PASSWORD

alist文档

1.镜像的拉取

默认从Docker Hub拉取,如果不指定版本,会拉取最新版
~ docker pull nginx
~ docker pull nginx:1.20.0
~ docker pull quay.io/bitnami/nginx

2.镜像的查看

~ docker image ls

3.镜像的删除

~ docker image rm nginx
~ docker image rm 11d
~ docker rmi nginx

4.镜像的导入和导出

~ docker image save nginx:1.20.0 -o nginx.image
~ docker image load -i .\nginx.image

5.镜像列表

~ docker images

6.查找镜像

~ docker search nginx

7.构建镜像

创建Dockerfile文件

FROM    centos
MAINTAINER      Jeffrey "xxx@xxx.com"

RUN     /bin/echo 'root:gogogogo' |chpasswd
RUN     useradd jeffrey
RUN     /bin/echo 'jeffrey:gogogogo' |chpasswd
RUN     /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE  22
EXPOSE  80
CMD     /usr/sbin/sshd -D

通过docker build命令构建镜像

~ % docker build -t jeffrey/centos .
[+] Building 23.2s (9/9) FINISHED                                                                              docker:desktop-linux
 => [internal] load .dockerignore                                                                                              0.0s
 => => transferring context: 2B                                                                                                0.0s
 => [internal] load build definition from Dockerfile                                                                           0.0s
 => => transferring dockerfile: 295B                                                                                           0.0s
 => [internal] load metadata for docker.io/library/centos:latest                                                               4.0s
 => [1/5] FROM docker.io/library/centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177               18.1s
 => => resolve docker.io/library/centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177                0.0s
 => => sha256:e6a0117ec169eda93dc5ca978c6ac87580e36765a66097a6bfb6639a3bd4038a 2.16kB / 2.16kB                                 0.0s
 => => sha256:52f9ef134af7dd14738733e567402af86136287d9468978d044780a6435a1193 83.94MB / 83.94MB                              15.5s
 => => sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177 762B / 762B                                     0.0s
 => => sha256:65a4aad1156d8a0679537cb78519a17eb7142e05a968b26a5361153006224fdc 529B / 529B                                     0.0s
 => => extracting sha256:52f9ef134af7dd14738733e567402af86136287d9468978d044780a6435a1193                                      2.5s
 => [2/5] RUN /BIN/ECHO 'root:gogogogo' |chpasswd                                                                              0.2s
 => [3/5] RUN USERADD jeffrey                                                                                                  0.3s
 => [4/5] RUN /BIN/ECHO 'jeffrey:gogogogo' |chpasswd                                                                           0.2s
 => [5/5] RUN /BIN/ECHO -e "LANG="en_US.UTF-8"" >/etc/default/local                                                            0.3s
 => exporting to image                                                                                                         0.0s
 => => exporting layers                                                                                                        0.0s
 => => writing image sha256:95bc35e95aa7a822181844e2ff8c3d5e88d63406530db7f8061300b0da75e7ee                                   0.0s
 => => naming to docker.io/jeffrey/centos                                                                                      0.0s

View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/m11yl2bram5xd8eyz3or3ve17
~ % docker images
REPOSITORY       TAG       IMAGE ID       CREATED          SIZE
jeffrey/centos   latest    95bc35e95aa7   27 minutes ago   272MB

-t 指定要创建的目标镜像名

. Dockerfile文件所有目录,可以指定绝对路径

设置镜像标签

~ % docker tag 95bc35e95aa7 jeffrey/centos:dev
docker tag 镜像ID, 用户名称、镜像源名(repository name)和新的标签名(tag)

操作命令(全)命令(简)
容器的创建docker container run docker run
容器的列出(up)docker container lsdocker ps
容器的列出(up和exit)docker container ls -adocker ps -a
容器的停止docker container stop docker stop
容器的删除docker container rm docker rm

1.批量停止

$ docker container ps
$ docker container stop eba
$ docker container stop $(docker container ps -aq)
stop后面跟Container ID

2.批量删除

$ docker container rm $(docker container ps -aq)

3.系统清理

快速对系统进行清理,删除停止的容器,不用的image等
$ docker system prune -a -f

4.容器运行模式

attach模式

docker container run -p 80:80 nginx
该模式创建容器在前台执行,输入输出结果会反映到本地端,本地端的输入输出也会反映到容器,ctrl + c 会让容器停止执行

detach模式

docker container run -d -p 80:80 nginx
该模式创建容器在后台执行

5.连接shell

创建一个容器并进入交互式模式

~ docker container run -it busybox sh

在一个已经运行的容器里执行一个额外的command

docker container exec -it 33d sh

6.run运行过程

$ docker container run -d --publish 80:80 --name webhost nginx

在本地查找是否有nginx这个image镜像

去远程的image registry查找nginx镜像(默认的registry是Docker Hub)

下载最新版本的nginx镜像 (nginx:latest 默认)

基于nginx镜像来创建一个新的容器,并且准备运行

docker engine分配给这个容器一个虚拟IP地址

在宿主机上打开80端口并把容器的80端口转发到宿主机上

启动容器,运行指定的命令(这里是一个shell脚本去启动nginx)

您是第 67960 位访客