Docker 命令

29 篇文章 3 订阅
7 篇文章 1 订阅

总结一些Docker的常用的命令和一些用法,持续补充更新;这里以mysql镜像为例

1.拉取镜像

docker pull mysql

默认会拉取最新的;如果要获取指定的镜像,在后面指定tag的名称;

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

2.查看所有运行中的容器

docker ps

3.查看所有的容器,包括未运行的

docker ps -a

4.运行一个mysql容器

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

参数说明:

--name :指定容器的别名是mysql,可以起别的名字;

-p 3306:3306 表示在这个容器中使用3306端口(第二个)映射到本机的端口号也是3306(第一个)

MYSQL_ROOT_PASSWORD 初始设置root用户的密码;

最后一个mysql是镜像的名字,这里用上面拉取的mysql来运行容器;

-d 表示detached,意味着执行完这句命令后,控制台不会被阻塞,可继续执行命令;

5.启动一个容器,当容器创建成功后,下次启动,可以直接通过start命令来启动

docker start mysql

6.停止一个容器,停止容器使用stop命令

 docker stop mysql

7.删除一个容器,当一个容器不需要了可以通过rm命令来删除

docker rm yemanren_phototutorial-mysql_1

8.删除所有容器

为了演示我们再创建一个mysql容器,注意不要同一个3306,端口已经被上一个3306端口占用了,会出现如下错误提示;

我们使用之前的创建容器命令,使用3309端口来创建一个mysql,容器名字为new-mysql-container

docker run --name new-mysql-container -p 3309:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

通过docker ps可以发现,已经有两个mysql的容器了;如图所示

现在要删除所有容器,使用命令

docker rm $(docker ps -a -q)

注意,删除所有容器之前,必须停止所有的容器,否则删除失败;这里的 -a 标识列出所有的容器,-q标识只列出容器的id,然后传递给rm命令,依次删除容器;要删除一个正在运行的容器可以使用docker rm -f 来删除;

9.登录容器

 docker exec -it new-mysql-container bash

运行中的容器其实一个功能完备的Linux操作系统,可以像常规的系统一样登录并访问容器;还可以使用exit命令退出登录

10.进入mysql之后,登录进去

mysql -u root -p

输入密码之后就可以进行数据库的一些操作了;

要退出mysql的操作,使用

这里,mysql最新的版本不知道为啥,intellij无法连接上去,后来使用mysql:5.7.20的镜像就可以连接上去;

11.删除镜像

docker rmi -f 99eb457f8a8e

12.提交镜像

对某个镜像做了一些操作需要commit 才能保存下来;

docker commit ubuntu ubuntu:dev

前面是镜像名称,后面是新的镜像的repository和tag;

13.运行容器并指定映射端口和文件

docker run -t -d -p 8080:8080/tcp --name dev -v /adademy/:/work 169efd55624a

最后的参数是镜像的id,也可以改成镜像的名称;

注意:windows中的docker进行挂载的时候只能挂载C:\Users 下的目录,其他的是无法挂载的;

docker run -t -d -p 6379:6379 --name redis_container -v /c/Users/:/work redis

上面的命令以redis为镜像,创建了一个容器,名称是redis_container;同时将本地的c:Users目录映射为容器中的work目录;

14.导出镜像

docker save 镜像名称 > 镜像名称.tar     //比如镜像为demo,打包命令 docker save demo > demo.tar

15.导入镜像

一般是镜像本地导出之后,上传到服务器上,之后再服务器上导入进去,使用load命令进行导入,如下所示

docker load < demo.tar

如果本地之前存在demo的镜像,那么它会覆盖掉之前的镜像

16.docker-compose 启动镜像

docker-compose -f app.yml up -d

注意,1.该命令会检测镜像是否发生了变化,假设app.yml中有两个镜像一个mysql,一个你的应用镜像比如demo,如果你重新导入了demo镜像,那么通过这个命令去起的时候,mysql是不会重启的,只有demo容器会重启,使用最新的镜像;2.docker中的容器默认是在一个网络里面,通信的时候使用的是容器的端口,比如app.yml中mysql的端口为

那么demo去连接mysql的时候使用的端口是3306而不是3396,3396端口是宿主机去连接的时候使用的端口;

17.启动docker服务

service docker start

18.以root身份进入docker容器中

docker exec -u root -it 容器名 /bin/bash

19.Springboot应用中配置mysql的用户名密码

 - SPRING_DATASOURCE_USERNAME=root
 - SPRING_DATASOURCE_PASSWORD=abcde

mysql.yml中配置mysql的数据库账户密码

 environment:
      - MYSQL_USER=root
      - MYSQL_ROOT_PASSWORD=abcde
      - MYSQL_DATABASE=mixweb

20.创建容器不启动

docker create <image_name:tag>

创建容器,但是不启动,可以在此基础上对容器的镜像做一些修改之后提交成一个新的镜像;

21.容器拷贝文件

docker cp <container_id>:/var/lib/tcc/lib/xxx.jar ./

拷贝容器中的jar包到当前的路径下;之后就可以对jar包做各种的编辑;比如更新下svg图片

jar -uf ./xxx.jar ./BOOT-INF/classes/static/assets/images/logo.svg

然后可以讲新的jar拷贝到容器中;

docker cp ./xxx.jar <container_id>:/var/lib/xxx/lib/xxx.jar

之后提交

docker commit <container_id> <docker_repo/tcc_new_image_name:new_tag>

最后清理创建的容器

docker rm <container_id>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值