1.搜索一个镜像
docker serach 镜像名
2.下载镜像
docker pull 镜像:tag // 如果不写tag默认拉取的latest版本
例如:
[root@]# docker pull redis:6.0
6.0: Pulling from library/redis
b85a868b505f: Already exists
b09642bd3b88: Already exists
e0678a951c8d: Already exists
67a563ae63af: Pull complete
231010d0bc84: Pull complete
4ef994b16c70: Pull complete
Digest: sha256:6d0fd2c8928d3a47c92da8e78cc5878b738c5ff3d15dc433e9989ceb332e27ba
Status: Downloaded newer image for redis:6.0
3.启动一个容器
docker run -it --name my_http -d httpd
查看容器启动状态:
[root@]# docker container ps|grep go_dk
60a2892a9f1e go_dk:1.2 "./hello" 2 days ago Up 2 days go_dk_1
启动容器可以配置参数,--restart=always。always 容器退出时总是重启, --restart=on-failure:3,on-failure 若容器的退出状态非0,则docker自动重启容器,还可以指定重启次数,若超过指定次数未能启动容器则放弃
docker run -it --name asd -d httpd --restart=on-failure:3
4.停止/重启
docker stop/restart 容器id
5.自定义构建镜像
需要创建一个Dockerfile文件。内部编写对应的命令.
例如:构建一个go应用程序使用docker打包安装部署。
FROM golang:alpine AS builder
WORKDIR /build
ADD go.mod .
COPY . .
RUN go get github.com/gin-gonic/gin
RUN go build -o hello hello.go
FROM alpine
WORKDIR /build
COPY --from=builder /build/hello /build/hello
CMD ["./hello"]
构建一个镜像:
docker build -it 镜像名 . (.指的是Dockerfile的路径)
6.搭建本地应用仓库&将本地镜像推送至本地仓库
搭建仓库:
[root@local]# docker run -it -d -p 5000::5000 -v/my_registry/var/lib/registry registry:2
推送镜像至本地仓库:
[root@local]# docker tag 本地镜像:版本 仓库域名:port/本地镜像:版本
[root@local]# docker push 仓库域名:port/本地镜像:版本
[root@localhost]# docker tag httpd registry.net:5000/myname/httpd:1.1
[root@localhost]# docker push registry.net:5000/myname/httpd:1.1
The push refers to repository [registry.net:5000/myname/httpd]
1617cfaff5dd: Pushed
36de10a434ef: Pushed
6437b1170b0b: Pushed
13fb8799144c: Pushed
a12586ed027f: Pushed
1.1: digest: sha256:8c353fea0ce30e79d03e487d31f3a37eb5aae5127bde9580387e74e77c5952a2 size: 1366
[root@localhost]# docker run -it -d --name self_httpd registry.net:5000/myname/httpd:1.1
4be39108a366a0db00cf3d9bb2e36cbdd5457b01ea4b17dd4a14f35f35a1973f
如上构建过程使用本地仓库使用方法。
7.将本地文件导入到镜像中
docker load -i 本地文件
8.当前镜像文件保存在本地:
docker save imagei -o 指定的文件
9.查看容器工作目录下有哪些文件:
docker run -it --rm 镜像名:tag ls -l 容器的工作目录(构建镜像时WORKDIR 指定的工作目录)
例如:
docker run -it --rm go_dk;1.1 ls -l /work