Hacker News new | ask | show | jobs
by Pooge 504 days ago
> The command line interface is really badly designed. It’s ugly, hard to learn, difficult to remember, illogical, inconsistent, and just makes no sense to me at all.

I wonder if the author could elaborate here.

3 comments

I wish they would elaborate a bit more on each single point. I'm quite happy about docker, so I'm especially interested when someone has a negative opinion about it. But here I feel like there's no meat to this article.
I kinda disagree about most of the points (but I don't love a lot of things about Docker, but don't see them being worse than other tools) - but I 100% agree on the networking.

It's kinda badly described and unintuitive. The amount of people who were surprised by the firewall rules messing up their existing firewall setup is very high. And it also just grabs a subnet and you have to dig why it would use that one and not another. Not sure about conflicts. But it's a bit of "it works until it doesn't".

I didn't have many "wtf just happened?" moments with docker, but 100% of them were network-related and half of them were hard to troubleshoot.

That's my impression, too.

While I agree that developers should support and have documentation for hosting without Docker, I think the arguments in the article are very poor.

It's completely fine to dislike a technology - hell if I don't! - but here it seems like they are arguing against Docker just for the sake of it.

not author but

`cmd containers` does nothing, `cmd images` does `cmd image ls`,

`cmd rm` does `cmd container rm`, `cmd ls` does nothing, its of course `cmd ps`,

`cmd rmi`, no `cmd lsi`,

no easy way to extract the resultant hash from a `cmd build`, can use a tag I suppose

Thank you for the examples.

Maybe I'm in the minority, but I've never used those commands... I'd rather write `docker container ls` than an obscure short-hand alias.

Funny enough, ls is short for list :)
Very true, but it's a well-known command so I wouldn't qualify it as obscure! At this point everyone expects `ls` to display a list of something.
Eye of the beholder. There's a ton of Windows folks that use docker and wouldn't have been exposed to ls before. If they used a command line at all, they're using dir on dos.

Granted, The linux subsystem stuff has expanded it's scope, but there's a few folks I know that have never touched linux and are using docker to run stuff.

This stood out to me, too. Git's CLI was very confusing for me to learn, but on Docker the metaphors made sense. An image, like a file system image. A container, something with walls. Exec to execute commands. Rm to delete. Some of the networking stuff took a little to learn (exposing ports to other containers vs outside of docker) but I think that's necessary complexity.