本文对 Docker 的配置与使用做简单小记。

镜像

列出镜像列表

1
2
3
docker image ls
docker image ls ubuntu
docker image ls ubuntu:18.04

查找镜像

1
docker search redis

获取镜像

1
docker pull ubuntu:18.04

删除本地镜像

1
docker image rm <IMAGE ID>

容器

启动容器

1
docker run -it ubuntu bash

参数说明

  • -i: 交互式操作。
  • -t: 终端。
  • ubuntu: ubuntu 镜像。
  • bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 bash。

启动已停止运行的容器

查看所有的容器命令如下:

1
docker ps -a

使用 docker start 启动一个已停止的容器:

1
docker start <容器 ID> 

后台运行

在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。

1
$ docker run -itd --name ubuntu-test ubuntu bash

停止一个容器

1
$ docker stop <容器 ID>

停止的容器可以通过 docker restart 重启:

1
$ docker restart <容器 ID>

进入容器

在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

1
docker exec -it <容器 ID> bash

删除容器

1
$ docker rm <容器 ID>

实例

MySQL

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
docker pull mysql:8.0.32
# 启动
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=FYX123fyx -p 3306:3306 mysql:8.0.32 
# 进入容器
docker exec -it mysql bash

# 登录mysql
mysql -uroot -p
ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'FYX123fyx';
FLUSH PRIVILEGES; 

Redis

1
2
docker run -d --name redis -p 6379:6379 redis
docker exec -it redis bash

Nginx

1
2
docker run -d --name nginx -p 80:80 nginx
docker exec -it nginx bash

Tomcat

1
2
3
docker pull tomcat:8
docker run -d --name tomcat -p 8080:8080 tomcat:8
docker exec -it tomcat bash

访问 localhost:8080显示404,是因为没有资源可以显示

1
2
rm -rf webapps
mv webapps.dist/ webapps

重新访问,正常显示

为了保存当前状态,以后可以正常访问,要提交commit新建镜像

1
2
3
docker commit --author "Yaxing Fang <[email protected]>" --message "修改tomcat主页显示" tomcat tomcat:v1
# 通过该镜像创建容器启动
docker run -d --name tomcat -p 8080:8080 tomcat:v1

参考

Docker — 从入门到实践