新手三天入门docker第二天:docker的命令实战

66 阅读2分钟

常用命令

可以访问https://hub.docker.com/镜像仓库寻找镜像。

image.png

拉取镜像

docker pull nginx   # 最新版本

docker pull nginx:1.20.1 # 指定版本

 # 下载的镜像都保存在本地。可以查询到镜像的tag、image id、size等信息
docker images

docker rmi nginx # 删除镜像,参数需要是镜像名:镜像版本号/镜像id

启动容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

# 当前正在运行的应用容器信息
docker ps

# 显示所有的容器
docker ps -a

# -d:后台运行
# --name=xx 自定义名称
# --restart=always 开机自启动
# 返回的序列号其实就是containerID
docker run --name=mynginx -d --restart=always nginx

# 镜像name不能重复

docker rm containerID/name # 删除应用容器,可以使用-f强制删除

docker stop containerID/name # 停止应用

docker start containerID/name # 启动应用

docker update containerID/name --restart=always # 使用update更新配置项,但是无法修改端口配置

目前nginx在云容器的80端口工作,无法通过公网ip访问,但是可以使用docker进行端口映射。docker run --name=mynginx -p 88:80 nginx
docker从镜像仓库拉取nginx镜像,使用docker run可以运行nginx应用,也可以使用exec进入应用配置。

修改容器应用

docker exec -it containerID/name /bin/bash # 进入容器应用的/bin/bash目录

exit # 离开应用

# 挂载数据
docker run --name=mynginx -d -p 88:80 \
-v /data/html:/usr/share/nginx/html:ro \  
nginx
# 把nginx应用的/usr/share/nginx/html文件挂载到云容器的/data/html文件,权限设置为只读模式,表示容器内部不能修改。此时修改外部文件其实就是修改内部文件
需要注意:挂载中设置的参数文件需要已存在

docker cp containerID/name:/etc/nginx/nginx.conf /data/conf/nginx.conf # 复制应用中指定位置的文件到容器文件中,容器文件和镜像文件可以互相复制

提交镜像

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] #提交到本地仓库,提交后本地仓库命名repository:tag(类似git)
[OPTIONS]
-a author
-m commit message

docker save [OPTIONS] IMAGE [IMAGE...]
[OPTIONS]
-o 后接文件名,如abc.tar,把镜像保存成压缩实体文件,方便传输

docker load -i abc.tar 加载接收的镜像文件

将镜像推送到远程仓库需要先在docker hub创建对应的repository
docker tag local-image:tagname new-repo:tagname #将本地镜像名称改成远程镜像名称

docker login # 登陆docker hub

docker push new-repo:tagname # 将镜像推送到远程仓库

docker logout

常用命令

docker logs containerID/name # 查看镜像日志

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 21 天,点击查看活动详情