Docker基本使用

容器使用

  1. 获取镜像
$ docker pull ubuntu
  1. 启动容器
$ docker run -it ubuntu /bin/bash
  • -i: 交互式操作。
  • -t: 终端。
  • -d:不进入容器
  • ubuntu: ubuntu 镜像。
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
  1. 其他常用命令
docker ps 查看当前正在运行的容器
docker ps -a 查看所有容器的状态
docker start/stop/restart id/name 启动/停止/重启某个容器
docker attach id 进入某个容器(使用exit退出后容器也跟着停止运行)
docker exec -ti id 启动一个伪终端以交互式的方式进入某个容器(使用exit退出后容器不停止运行)
docker images 查看本地镜像
docker rm id/name 删除某个容器
docker rmi id/name 删除某个镜像
docker run --name test -ti ubuntu /bin/bash  复制ubuntu容器并且重命名为test且运行,然后以伪终端交互式方式进入容器,运行bash
docker search name 查找镜像docker build -t soar/centos:7.1通过当前目录下的Dockerfile创建一个名为soar/centos:7.1的镜像
docker run -d -p 2222:22 --name test soar/centos:7.1 以镜像soar/centos:7.1创建名为test的容器,并以后台模式运行,并做端口映射到宿主机2222端口,P参数重启容器宿主机端口会发生改变

安装mysql

  1. 在根目录下创建mysql镜像文件
mkdir mysql
  1. 下载mysql镜像
sudo docker pull mysql
  1. 使用mysql镜像
sudo docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql

命令说明:

-p 3306:3306:将容器的 3306 端口映射到主机的 3306端口。

-v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf

-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs

-v $PWD/data:/var/lib/mysql:将主机当前目录下的data目录挂载到容器的 /var/lib/mysql

-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。

  1. 查看容器启动情况
docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
a69977b153e5        mysql               "docker-entrypoint.s…"   13 seconds ago      Up 11 seconds       0.0.0.0:3306->3306/tcp   mymysql
  1. 测试数据库是否正常运行
sudo docker exec -it mymysql bash(docker exec是docker镜像的连接命令,)
查看数据库状态
service mysql status
如果没有启动就将它启动:
service mysql start
输入:mysql -u root -p
Enter password:
进入成功
查看数据库
show databases;

制作ubantu镜像

  1. 选择基础镜像
$ docker pull ubuntu:16.04
  1. 创建容器并进入
$ docker run -t -i ubuntu /bin/bash
  1. 进入容器,添加工具
$ apt update
$ apt install python3
$ apt install pip3
$ apt install vim
...
  1. 将此容器打包成自己的镜像
$ docker commit -m "add a ubuntu16.04 image with pyhon3 and vim" -a "lmx" 9d498869c227 lmx4098/demo:ubuntu16.04_python3_vim

-m:注释

-a:作者 容器id

lmx4098/demo:ubuntu16.04_python3_vim:lmx4098/demo:Repositories名称且必须要和自己docker hub上的Repositories一致,ubuntu16.04_python3_vim:版本号。

  1. 上传推送
$ docker push lmx4098/demo:ubuntu16.04_python3_vim

更换镜像源

vi /etc/docker/daemon.json 
{ "registry-mirrors": ["https://registry.docker-cn.com"] }
systemctl daemon-reload
systemctl restart docker

卸载

yum remove docker* -y
rm -rf /var/lib/docker/
posted @ 2018-07-10 09:47  _STAyy  阅读(107)  评论(0编辑  收藏  举报